Supplementary methods

Schematics for replacement of the unknown Sxl-GFP nuclear background with the isogenic w1118 background

Figure S1: Crossing scheme used to create a standard homozygous GFP-w line. Males from this line were crossed with females carrying a specific mitochondrial haplotype, to create experimental mitolines. These newly produced lines carried the mitochondrial haplotype of the female and were heterozygous for the Sxl-GFP construct. G1 = the first generation of the cross.

Figure S1: Crossing scheme used to create a standard homozygous GFP-w line. Males from this line were crossed with females carrying a specific mitochondrial haplotype, to create experimental mitolines. These newly produced lines carried the mitochondrial haplotype of the female and were heterozygous for the Sxl-GFP construct. G1 = the first generation of the cross.

Data analysis and supplementary results

Here we include all code used to run our analysis, our rationale behind the modelling approaches, and all remaining supplementary tables and figures.

Load packages, read in the data and create some helpful functions

# load relevant packages

library(lme4) # for the lmer and glmer mixed model functions
library(lmerTest) # Used to get p-values for lmer models using simulation. It over-writes lmer() with a new version, which gives p-values
library(glmmTMB) # for zero-inflated or hurdle glms
library(brms) # for Bayesian models
library(car) # for type III Anova's
library(dplyr) # data re-shaping
library(MuMIn) # for model selection and averaging
library(ggplot2) # for plots
library(ggThemeAssist) # a plot formatting add in
library(ggridges) # for joy plots
library(ggExtra) # for ggplot enhancements - primarily ggMarginal()
library(ggstance) # for ggplot enhancements - can create more horizontal plots
library(ggpubr) # for the ggarrange function
library(ggbeeswarm) # violin plots with data points
library(ggResidpanel) # for model assumption plots
library(kableExtra) # nice tables that can scroll
library(pander) # more nice tables
library(stringr) # helps build functions
library(forcats) # for changing the order of factors
library(groupdata2) # for assigning rows in data-frames to groups

# Read in data frame and add pipette tip column

all_data <- read.csv("mtDNA_larval_competition_data.csv") %>% 
  arrange(Individual) %>%
  mutate(duplicate = str_extract(Strain, "[:digit:]")) %>%
  group(n = 2, method = "greedy") %>% rename(Pipette_tip = .groups)

# Create a function for standard error - generally useful and needed for later

SE <- function(x) sd(x)/sqrt(length(x))

# helper for saving stuff and naming the file object.rds

save_it <- function(object){
  saveRDS(get(object), file = paste(object, ".rds", sep = ""))}

# Define a standard dodge for the error bar plots

pd <- position_dodge(0.75) # move them 0.3 to the left and right


# function for finding CIs for binomial data

get_CIs_for_binomial_trials <- function(success, failure){
  
  output <- as.data.frame(matrix(NA, nrow = length(success), ncol = 5))
  
  for(i in 1:length(success)){
    n <- success[i] + failure[i]
    x <- binom.test(success[i], n)
    output[i,] <- c(x$estimate,
                    as.numeric(x$conf.int),
                    sqrt(x$estimate * (1-x$estimate)/n), # binomial SE = sqrt(p(1-p)/n)
                    n)
  }
  names(output) <- c("Proportion", "lowerCI", "upperCI", "SE", "n")
  output
}
# e.g. get_CIs_for_binomial_trials(survived = c(10,100), died = c(50,30))

Data preparation for all responses

# Clean the dataset up for analysis

# Select the columns we're interested in and rename them

fitness_data <- dplyr::select(all_data, Individual, Block, duplicate,  Pipette_tip, Sex, Focal.haplotype, Social.haplotype, Mortality,  Social.Survival, Development.time..hrs., Day.emerged, Hours.from.lights.on, Wing.size..mm., Female.offspring, Male.offspring, Total.female.assay, Total.red.all.vials, Total.bw.all.vials) %>% 
  rename(Block = Block, Duplicate = duplicate, Day = Day.emerged, Hours = Hours.from.lights.on, Survived = Mortality, Focal_haplotype = Focal.haplotype, Social_haplotype = Social.haplotype, Social_survival = Social.Survival, Dev_time = Development.time..hrs., Wing_length = Wing.size..mm., Maternal_female_offspring = Female.offspring, Maternal_male_offspring = Male.offspring, Maternal_total_offspring = Total.female.assay, Paternal_focal_offspring = Total.red.all.vials, Patneral_bw_offspring = Total.bw.all.vials)

# Define new levels for mortality to make renaming possible 

levels(fitness_data$Survived) <- c(levels(fitness_data$Survived), "NO")
levels(fitness_data$Survived) <- c(levels(fitness_data$Survived), "YES")

# Rename the mortality responses
# L means died as larva, P means died as pupae, N means did not die (i.e. eclosed as an adult)

fitness_data$Survived[fitness_data$Survived == 'L'] <- 'NO'
fitness_data$Survived[fitness_data$Survived == 'P'] <- 'NO'
fitness_data$Survived[fitness_data$Survived == 'N'] <- 'YES'

# Now that it makes sense change "YES" to 1 and "NO" to 0 so we can fit a binomial GLM.

levels(fitness_data$Survived) <- c(levels(fitness_data$Survived), "1")
levels(fitness_data$Survived) <- c(levels(fitness_data$Survived), "0")

fitness_data$Survived[fitness_data$Survived == "YES"] <- 1
fitness_data$Survived[fitness_data$Survived == "NO"] <- 0

# Make the factor numeric 

fitness_data$Survived <- as.numeric(as.character(fitness_data$Survived))


# Create specific datasets for each fitness trait

# Remove all rows that contain an NA value in the survival column. The NAs mean things like the GFP sorting did not work, or the vial was never even set up due to a shortage of larvae. So they are not meaningful data, and we remove them here. Also remove NA values in the social survival column as the dredge function won't work with these in the dataset.

survival <- fitness_data %>% filter(!is.na(Survived)) %>% filter(!is.na(Social_survival))
  
# Remove all rows that contain an NA value in the development time column. This instances represent flies where we failed to measure development time. 

larval_development <- fitness_data %>% filter(!is.na(Dev_time)) %>% filter(!is.na(Social_survival))

# Remove all rows that contain an NA value in the wing length column. Wing length was not measured in Blocks 1 and 2.

body_size <- fitness_data %>% filter(!is.na(Wing_length)) %>% filter(!is.na(Social_survival))

# Remove all rows that contain an NA value in the female reproductive output column, and where females did not survive to adulthood (coded as producing 0 offspring). 

female_reproductive_output <- fitness_data %>% filter(!is.na(Maternal_total_offspring), Survived == 1) %>% filter(!is.na(Social_survival))


# Male adult fitness

# First remove females from the dataset.

Male_fitness <- all_data %>% filter(!is.na(Total.red.all.vials)) 

# Create an offspring counted column so that the data is correctly formatted for a binomial model.

Male_fitness$Offspring_counted <- Male_fitness$Total.red.all.vials + Male_fitness$Total.bw.all.vials

# Now lets remove vials where the female produced 0 offspring (this includes trials where the male died in development)

Male_fitness <- Male_fitness %>% filter(!(Offspring_counted == 0))

# Select relevant columns and rename variables 

Male_fitness <- dplyr::select(Male_fitness, Individual, Block, Pipette_tip, Focal.haplotype, Social.haplotype, Social.Survival,  Mortality, Development.time..hrs., Day.emerged, Wing.size..mm., Hours.from.lights.on, Total.red.all.vials, Total.bw.all.vials, Offspring_counted,  Proportion.red.all.vials, duplicate) %>% 
  rename(Focal_male_offspring = Total.red.all.vials, Block = Block, Day = Day.emerged, Hours = Hours.from.lights.on, Survived = Mortality, Focal_haplotype = Focal.haplotype, Social_haplotype = Social.haplotype, Social_survival = Social.Survival, Dev_time = Development.time..hrs., Wing_length = Wing.size..mm., Proportion_focal = Proportion.red.all.vials, Bw_offspring = Total.bw.all.vials, Duplicate = duplicate) %>% 
  filter(!is.na(Social_survival))

Modelling approach

We analysed the data using generalised linear mixed models in the lmer package for R.

Fixed effects

For the analysis of fitness traits expressed in both sexes (survival, development time and body size), we are interested in the effect of an individual’s focal mtDNA, the mtDNA of a social competitor, the effect of a social competitors success, and the effect of sex on fitness. To identify these potential effects each model contained the following fixed effects, and interactions where biologically relevant:

Focal haplotype: the mtDNA haplotype that an individual carries.

Social haplotype: the mtDNA haplotype that a social partner during larval development carries.

Social survival: the survival outcome of the social partner.

Sex: is the focal individual female or male? The social partner will always be of the opposite sex to the focal individual.

We also include:

Duplicate: Each haplotype has been introgressed alongside the w1118 nuclear background in two independent duplicates. WIthin each block we ran multiple replicates that were split in two: half used only duplicate one will the other half used only duplicate two. This fixed effect accounts for any nuclear differences that may have arisen between duplicates.

Random effects

Block: accounts for differences in the response variable between experimental blocks (e.g. to variance in temperature or composition of the fly food). In our experiment a Block contained multiple replicates and a replicate was made up of 25 different cells each housing a pair of larvae.

Model evaluation

Each model was evaluated via AICc values using the dredge function, from the Mumin package. There was rarely a single model that was unequivocally the best fit to the data, so we conducted model averaging for the set of models where delta was < 6, as suggested by Symonds and Moussalli (2011). The present study is a planned experiment to measure the effect of mtDNA on fitness, so we derived model estimates from the conditional model averages.

Larval fitness measures

Egg to adult viability analysis

We fit a glm with binomial errors to model survival

The model:

Survived ~ Focal_haplotype * Social_haplotype * Sex + Duplicate + (1|Block) + (1|Pipette_tip)

# Fit the global model

survival_model <- lme4::glmer(Survived ~ Focal_haplotype * Social_haplotype * Sex + factor(Duplicate) + (1|Block) + (1|Pipette_tip), data = survival, family = "binomial", control = glmerControl(optimizer = "Nelder_Mead", optCtrl=list(maxfun=100000)), na.action = na.fail)

Model evaluation

Table S1: Evaluation of the survivorship model. All possible models were evaluated from the global model that included a three-way interaction between focal haplotype, social haplotype and social survival, the stand alone fixed effects sex and duplciate, as well as the random factor block. As there was no clear top model, the final model was calculated via model averaging.

# Compare all possible combinations of models (from the global model)

if(file.exists("survival_dredge.rds")){ # If already done, just load the results
  survival_dredge <- readRDS("survival_dredge.rds")
} else {survival_dredge <- dredge(survival_model)                  # If not already done, run all the models and save the results
lapply(c("survival_dredge"), save_it)
}


survival_table <- subset(survival_dredge, delta < 6, recalc.weights = FALSE) %>% as.data.frame()

names(survival_table)[names(survival_table) == "(Intercept)"] <- "Intercept"
names(survival_table)[names(survival_table) == "factor(Duplicate)"] <- "Duplicate"
names(survival_table)[names(survival_table) == "Focal_haplotype"] <- "Focal haplotype"
names(survival_table)[names(survival_table) == "Sex"] <- "Sex"
names(survival_table)[names(survival_table) == "Social_haplotype"] <- "Social haplotype"
names(survival_table)[names(survival_table) == "Focal_haplotype:Sex"] <- "Focal haplotype x Sex"
names(survival_table)[names(survival_table) == "Focal_haplotype:Social_haplotype"] <- "Focal haplotype x Social haplotype"
names(survival_table)[names(survival_table) == "Social_haplotype:Sex"] <- "Social haplotype x Sex"
names(survival_table)[names(survival_table) == "Focal_haplotype:Social_haplotype:Sex"] <- "Focal haplotype x Social haplotype x Sex"
names(survival_table)[names(survival_table) == "df"] <- "Degrees of freedom"
names(survival_table)[names(survival_table) == "logLik"] <- "Log likelihood"
names(survival_table)[names(survival_table) == "AICc"] <- "AICc"
names(survival_table)[names(survival_table) == "delta"] <- "Delta"
names(survival_table)[names(survival_table) == "weight"] <- "Weight"

pander(survival_table, split.cell = 40, split.table = Inf)
  Intercept Duplicate Focal haplotype Sex Social haplotype Focal haplotype x Sex Focal haplotype x Social haplotype Sex:Social_haplotype Focal_haplotype:Sex:Social_haplotype Degrees of freedom Log likelihood AICc Delta Weight
2 -0.09608 + NA NA NA NA NA NA NA 4 -1301 2609 0 0.3557
6 -0.1418 + NA + NA NA NA NA NA 5 -1300 2610 1.097 0.2055
4 -0.0005772 + + NA NA NA NA NA NA 8 -1297 2610 1.162 0.199
8 -0.0453 + + + NA NA NA NA NA 9 -1297 2611 2.304 0.1124
10 -0.1255 + NA NA + NA NA NA NA 8 -1299 2614 5.407 0.02382
1 -0.2129 NA NA NA NA NA NA NA NA 3 -1304 2615 5.687 0.0207

Model averaging

Table 1: Conditional model coefficients, standard error and 95% confidence limits are shown for the survivorship to adulthood averaged model. Bold rows indicate signficant effects.

# average the models with delta < 6

Survival_avg <- model.avg(survival_dredge, subset = delta < 6)

survival_CIs <- confint(model.avg(survival_dredge, subset = delta < 6)) %>% as.data.frame()

survival_estimate <- coefTable(model.avg(survival_dredge, subset = delta < 6)) %>% as.data.frame()

survival_model_avg <- data.frame(survival_estimate, survival_CIs) %>% select(Estimate, Std..Error,  X2.5.., X97.5..)

names(survival_model_avg)[names(survival_model_avg) == "Estimate"] <- "Conditional average estimate"
names(survival_model_avg)[names(survival_model_avg) == "Std..Error"] <- "Standard Error"
names(survival_model_avg)[names(survival_model_avg) == "X2.5.."] <- "2.5% Interval"
names(survival_model_avg)[names(survival_model_avg) == "X97.5.."] <- "97.5% Interval"


pander(survival_model_avg, split.cell = 40, split.table = Inf, emphasize.strong.rows = (2))
  Conditional average estimate Standard Error 2.5% Interval 97.5% Interval
(Intercept) -0.08278 0.3146 -0.6994 0.5338
factor(Duplicate)2 -0.3077 0.1113 -0.5259 -0.08957
SexM 0.09071 0.09544 -0.09635 0.2778
Focal_haplotypeBrownsville -0.08159 0.151 -0.3776 0.2144
Focal_haplotypeDahomey 0.07345 0.1512 -0.2228 0.3697
Focal_haplotypeIsrael -0.2627 0.1529 -0.5624 0.03701
Focal_haplotypeSweden -0.2193 0.1536 -0.5204 0.0818
Social_haplotypeBrownsville -0.07158 0.1518 -0.3692 0.226
Social_haplotypeDahomey 0.037 0.152 -0.2608 0.3348
Social_haplotypeIsrael 0.169 0.152 -0.1288 0.4669
Social_haplotypeSweden 0.01623 0.1534 -0.2845 0.317
# The full average provides a parameter average across all models considered, including ones where the parameter coefficient is set to 0. The conditional average reports coefficents for only the models where the parameter is included.
survival_plot_data <- survival %>% 
  mutate(Social_survival = replace(as.character(Social_survival), Social_survival == "L", "Died as larva"),
        Social_survival = replace(as.character(Social_survival), Social_survival == "P", "Died as pupa"),
         Social_survival = replace(as.character(Social_survival), Social_survival == "N", "Survived to adulthood"))


survival_plot_summary <- survival_plot_data %>% 
  dplyr::group_by(Social_survival) %>%
  dplyr::summarise(number_surviving = sum(Survived), number_died = sum(Survived == 0)) %>%
  as.data.frame()

survival_CIs <- get_CIs_for_binomial_trials(survival_plot_summary$number_surviving, survival_plot_summary$number_died) %>% rename(Survived = Proportion)

survival_plot_summary <- cbind(survival_plot_summary, survival_CIs)

survival_plot_data %>%
  ggplot(aes(x = Social_survival, y = Survived, fill = Social_survival, colour = Social_survival)) +
  #geom_quasirandom(data = survival_plot_data, width = 0.5, alpha =  0.5) +
  scale_colour_manual(values = c("Died as larva" = "#a50f15", "Died as pupa" = "#fe9929", "Survived to adulthood" = "#41b6c4")) +
  geom_point(data = survival_plot_summary, aes(x = Social_survival, y = Survived), size = 3, colour='black') +
  geom_errorbar(data = survival_plot_summary, aes(x = Social_survival, ymax = upperCI, ymin = lowerCI, width = 0), colour = "black") +
  labs(x = "Survival outcome of social partner", y = "Proportion of larvae surviving to adulthood") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(panel.grid.major.x = element_blank())

#**Figure 1:** Survivorship to adulthood is affected by the success of a social partner. Black points show the mean proportion of larvae that successfully eclosed, with 95% confidence limits. 
survival_mtDNA_summary <- survival %>% 
  dplyr::group_by(Focal_haplotype) %>%
  dplyr::summarise(number_surviving = sum(Survived), number_died = sum(Survived == 0)) %>%
  as.data.frame()

survival_mtDNA_CIs <- get_CIs_for_binomial_trials(survival_mtDNA_summary$number_surviving, survival_mtDNA_summary$number_died) %>% rename(Survived = Proportion)

survival_mtDNA_summary <- cbind(survival_mtDNA_summary, survival_mtDNA_CIs)

survival_mtDNA_summary %>%
  ggplot(aes(x = Focal_haplotype, y = Survived, fill = Focal_haplotype, colour = Focal_haplotype)) +
  #geom_quasirandom(data = survival_plot_data, width = 0.5, alpha =  0.5) +
  #scale_colour_manual(values = c("Barcelona" = "#a50f15", "Brownsville" = "#fe9929", "Dahomey" = "#41b6c4", "Israel" = "#238443" , "Sweden" = "#4a1486")) +
  geom_point(data = survival_mtDNA_summary, aes(x = Focal_haplotype, y = Survived), size = 3, colour='black') +
  geom_errorbar(data = survival_mtDNA_summary, aes(x = Focal_haplotype, ymax = upperCI, ymin = lowerCI, width = 0), colour = "black") +
  labs(x = "mtDNA haplotype", y = "Proportion of larvae surviving to adulthood") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(panel.grid.major.x = element_blank())

Figure 1: The black points show the mean proportion of larvae surviving to eclose for each mtDNA haplotype and its 95% confidence limits.

check these confidence intervals

Development time analysis

density_development_plot <- ggplot(larval_development)+
  stat_density_ridges(aes(x=Dev_time, y = NA, fill = Sex), alpha = 0.7, scale = 12, position = position_nudge(y = -0.5), show.legend = T) +
  geom_vline(xintercept = 238, linetype = 2) +
  geom_vline(xintercept = 262, linetype = 2) +
  geom_vline(xintercept = 286, linetype = 2) +
  xlab("Egg-to-adult development time (hours)") +
  ylab("Kernel density estimate") +
  theme_bw()+
   scale_fill_manual(values = c("F" = "#e41a1c", "M" = "#377eb8"), labels = c("Female", "Male")) +
  scale_x_continuous(limits = c(220, 310), breaks = c(220, 230, 240, 250, 260, 270, 280, 290, 300, 310)) +
  scale_y_discrete(expand = c(.0,0.0))+
  theme(panel.spacing = unit(0.1, "lines"),
        text = element_text(size=16),
        panel.border= element_blank(),
        axis.line=element_line(), 
        panel.grid.major.x = element_blank(),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.minor.x = element_blank(),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank(),
        axis.title.x = element_text(hjust = 0.5, size = 14))
density_development_plot

Figure S2: The distribution of egg-to-adult development time, split by sex. Dashed lines indicate when lights were turned each morning and highlight the relationship between light and eclosion.

The response variable has a trimodal distribution, that can be potentially explained by the lab’s artificial day-night cycle. When the lights turn on at 7am, eclosion is stimulated.

The model:

Dev_time ~ Focal_haplotype * Social_haplotype * Sex + Duplicate + (1|Block) + (1|Pipette_tip)

# Fit the linear model

linear_dev_model <- lmer(Dev_time ~ Focal_haplotype * Social_haplotype * Sex + factor(Duplicate) + (1|Block) + (1|Pipette_tip), larval_development, na.action = na.fail, REML = FALSE)

Lets have a look at model diagnostics

resid_panel(linear_dev_model)

Despite the data being trimodal, the linear model appears to fit the data adequately. The residuals vs fitted plot indicates that the mean and variance share no relationship. The Q-Q Plot shows that points fall off at the extremes, but generally conform to a linear pattern.

Model evaluation

Table S2: Evaluation of the development time model. All possible models were evaluated from the global model that included a three-way interaction between focal haplotype, social haplotype and social survival, the stand alone fixed effects sex and duplciate, as well as the random factor block. As there was no clear top model, the final model was calculated via model averaging.

# Use dredge to compare all possible models derived from the global model

Dev_time_linear_dredge <- dredge(linear_dev_model, extra = "R^2")

development_table <- subset(Dev_time_linear_dredge, delta < 6, recalc.weights = FALSE)  %>% as.data.frame()

names(development_table)[names(development_table) == "(Intercept)"] <- "Intercept"
names(development_table)[names(development_table) == "(factor(Duplicate))"] <- "Duplicate"
names(development_table)[names(development_table) == "Focal_haplotype"] <- "Focal haplotype"
names(development_table)[names(development_table) == "Social_haplotype"] <- "Social haplotype"
names(development_table)[names(development_table) == "Focal_haplotype:Sex"] <- "Focal haplotype x Sex"
names(development_table)[names(development_table) == "Focal_haplotype:Social_haplotype"] <- "Focal haplotype x Social haplotype"
names(development_table)[names(development_table) == "Social_haplotype:Sex"] <- "Social haplotype x Sex"
names(development_table)[names(development_table) == "Focal_haplotype:Social_haplotype:Sex"] <- "Focal haplotype x Social haplotype x Sex"
names(development_table)[names(development_table) == "df"] <- "Degrees of freedom"
names(development_table)[names(development_table) == "logLik"] <- "Log likelihood"
names(development_table)[names(development_table) == "AICc"] <- "AICc"
names(development_table)[names(development_table) == "delta"] <- "Delta"
names(development_table)[names(development_table) == "weight"] <- "Weight"

pander(development_table, split.cell = 40, split.table = Inf)
  Intercept factor(Duplicate) Focal haplotype Sex Social haplotype Focal haplotype x Sex Focal haplotype x Social haplotype Sex:Social_haplotype Focal_haplotype:Sex:Social_haplotype R^2 Degrees of freedom Log likelihood AICc Delta Weight
6 261.2 + NA + NA NA NA NA NA 0.1241 6 -2993 5998 0 0.3831
5 260.6 NA NA + NA NA NA NA NA 0.1211 5 -2994 5998 0.4798 0.3014
8 262.5 + + + NA NA NA NA NA 0.1304 10 -2990 6001 2.77 0.09591
7 261.9 NA + + NA NA NA NA NA 0.1275 9 -2991 6001 3.218 0.07666
2 262.4 + NA NA NA NA NA NA NA 0.1163 5 -2996 6002 4.561 0.03917
1 261.8 NA NA NA NA NA NA NA NA 0.1133 4 -2997 6003 5.081 0.03021

Model averaging

Table 2: Conditional model coefficients, standard error and 95% confidence limits are shown for the egg-to-adult development time averaged model. Bold rows indicate signficant effects.

# Model averaging

Dev_time_avg <- (model.avg(Dev_time_linear_dredge, subset = delta < 6))

Dev_CIs <- confint(model.avg(Dev_time_linear_dredge, subset = delta < 6)) %>% as.data.frame()

Dev_estimate <- coefTable(model.avg(Dev_time_linear_dredge, subset = delta < 6)) %>% as.data.frame()

Dev_model_avg <- data.frame(Dev_estimate, Dev_CIs) %>% select(Estimate, Std..Error,  X2.5.., X97.5..)

names(Dev_model_avg)[names(Dev_model_avg) == "Estimate"] <- "Conditional average estimate"
names(Dev_model_avg)[names(Dev_model_avg) == "Std..Error"] <- "Standard Error"
names(Dev_model_avg)[names(Dev_model_avg) == "X2.5.."] <- "2.5% Interval"
names(Dev_model_avg)[names(Dev_model_avg) == "X97.5.."] <- "97.5% Interval"


pander(Dev_model_avg, split.cell = 40, split.table = Inf, emphasize.strong.rows = 3)
  Conditional average estimate Standard Error 2.5% Interval 97.5% Interval
(Intercept) 261.3 2.388 256.6 265.9
factor(Duplicate)2 -1.775 1.119 -3.969 0.4182
SexM 2.291 0.8918 0.5436 4.039
Focal_haplotypeBrownsville -1.926 1.448 -4.763 0.9115
Focal_haplotypeDahomey -2.717 1.415 -5.491 0.05669
Focal_haplotypeIsrael -1.778 1.503 -4.724 1.169
Focal_haplotypeSweden -0.09395 1.51 -3.053 2.865
larval_development_plot_data <- larval_development %>% 
  mutate(Social_survival = replace(as.character(Social_survival), Social_survival == "L", "Died as larva"),
        Social_survival = replace(as.character(Social_survival), Social_survival == "P", "Died as pupa"),
         Social_survival = replace(as.character(Social_survival), Social_survival == "N", "Survived to adulthood"),
        Sex = replace(as.character(Sex), Sex == "F", "Female"),
         Sex = replace(as.character(Sex), Sex == "M", "Male"))

larval_development_summary <- larval_development_plot_data %>% 
  dplyr::group_by(Social_survival, Sex) %>%
  dplyr::summarise(Mean_Dev_time = mean(Dev_time), Lower = (Mean_Dev_time - SE(Dev_time)* 1.96), Upper = (Mean_Dev_time + SE(Dev_time)*1.96), n = n()) %>% rename(Dev_time = Mean_Dev_time)


larval_development_plot_data %>%
  ggplot(aes(x = Social_survival, y = Dev_time, fill = Social_survival, colour = Social_survival)) +
  geom_quasirandom(data = larval_development_plot_data, width = 0.3, size = 2, alpha =  0.5) +
  scale_colour_manual(values = c("Died as larva" = "#a50f15", "Died as pupa" = "#fe9929", "Survived to adulthood" = "#41b6c4")) +
  geom_point(data = larval_development_summary, aes(x = Social_survival, y = Dev_time), size = 3, colour='black') +
  geom_errorbar(data = larval_development_summary, aes(x = Social_survival, ymax = Upper, ymin = Lower, width = 0), colour = "black") +
  geom_hline(yintercept = c(238, 262, 286), linetype = 2, colour = "grey", alpha = 0.5) +
  facet_wrap(~ Sex) +
  labs(x = "Survival outcome of social partner", y = "Egg-to-adult development time (hrs)") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(panel.grid.major.x = element_blank())

# **Figure 3:** Egg-to-adult development time is affected by an individual's sex and the success of a social competitor. The coloured points show the development time for individual flies. The black points show the mean development time for males and females and its 95% confidence limits. Dashed lines indicate when lights were turned each morning and highlight the relationship between light and eclosion.
larval_development_plot_data <- larval_development %>% 
  mutate(Sex = replace(as.character(Sex), Sex == "F", "Female"),
         Sex = replace(as.character(Sex), Sex == "M", "Male"))


development_mtDNA_summary <- larval_development_plot_data %>% 
  dplyr::group_by(Focal_haplotype) %>%
  dplyr::summarise(Mean_Dev_time = mean(Dev_time), Lower = (Mean_Dev_time - SE(Dev_time)* 1.96), Upper = (Mean_Dev_time + SE(Dev_time)*1.96), n = n()) %>% rename(Dev_time = Mean_Dev_time)


larval_development_plot_data %>%
  ggplot(aes(x = Focal_haplotype, y = Dev_time, fill = Focal_haplotype, colour = Focal_haplotype)) +
  geom_quasirandom(data = larval_development_plot_data, width = 0.3, size = 2, alpha =  0.5) +
  scale_colour_manual(values = c("Barcelona" = "#a50f15", "Brownsville" = "#fe9929", "Dahomey" = "#41b6c4", "Israel" = "#238443" , "Sweden" = "#4a1486")) +
  geom_point(data = development_mtDNA_summary, aes(x = Focal_haplotype, y = Dev_time), size = 3, colour='black') +
  geom_errorbar(data = development_mtDNA_summary, aes(x = Focal_haplotype, ymax = Upper, ymin = Lower, width = 0), colour = "black") +
  geom_hline(yintercept = c(238, 262, 286), linetype = 2, colour = "grey", alpha = 0.5) +
  labs(x = "mtDNA haplotype", y = "Egg-to-adult development time (hrs)") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(panel.grid.major.x = element_blank())

Figure 2: Egg-to-adult development time is affected by an individual’s mtDNA haplotype. The coloured points show the development time for individual flies. The black points show the mean development time for males and females and its 95% confidence limits.

Adult fitness measures

Body size analysis

We use wing length as a proxy for adult body size. Errors are normally distributed, therefore we fit a linear mixed model.

The model:

Wing_length ~ Focal_haplotype * Social_haplotype * Sex + Duplicate + (1|Block) + (1|Pipette_tip)

body_size_model<- lmer(Wing_length ~ Focal_haplotype * Social_haplotype * Sex + factor(Duplicate) + (1|Block) + (1|Pipette_tip), body_size, na.action = na.fail, REML = FALSE)

Lets have a look at model diagnostics

resid_panel(body_size_model)

Model evaluation

Table S3: Evaluation of the wing length model. All possible models were evaluated from the global model that included a three-way interaction between focal haplotype, social haplotype and social survival, the standalone fixed effects sex and duplicate, as well as the random factor ‘Block’. As there was no clear top model, the final model was calculated via model averaging.

# Compare all possible combinations of models (from the global model)

body_size_dredge <- dredge(body_size_model)

size_table <- subset(body_size_dredge, delta < 6, recalc.weights = FALSE) %>% as.data.frame()


names(size_table)[names(size_table) == "(Intercept)"] <- "Intercept"
names(size_table)[names(size_table) == "factor(Duplicate)"] <- "Duplicate"
names(size_table)[names(size_table) == "Focal_haplotype"] <- "Focal haplotype"
names(size_table)[names(size_table) == "Sex"] <- "Sex"
names(size_table)[names(size_table) == "Social_haplotype"] <- "Social haplotype"
names(size_table)[names(size_table) == "Focal_haplotype:Sex"] <- "Focal haplotype x Sex"
names(size_table)[names(size_table) == "Focal_haplotype:Social_haplotype"] <- "Focal haplotype x Social haplotype"
names(size_table)[names(size_table) == "Social_haplotype:Sex"] <- "Social haplotype x Sex"
names(size_table)[names(size_table) == "Focal_haplotype:Social_haplotype:Sex"] <- "Focal haplotype x Social haplotype x Sex"
names(size_table)[names(size_table) == "df"] <- "Degrees of freedom"
names(size_table)[names(size_table) == "logLik"] <- "Log likelihood"
names(size_table)[names(size_table) == "AICc"] <- "AICc"
names(size_table)[names(size_table) == "delta"] <- "Delta"
names(size_table)[names(size_table) == "weight"] <- "Weight"

pander(size_table, split.cell = 40, split.table = Inf)
  Intercept Duplicate Focal haplotype Sex Social haplotype Focal haplotype x Sex Focal haplotype x Social haplotype Sex:Social_haplotype Focal_haplotype:Sex:Social_haplotype Degrees of freedom Log likelihood AICc Delta Weight
5 1.063 NA NA + NA NA NA NA NA 5 440.6 -871 0 0.6733
6 1.063 + NA + NA NA NA NA NA 6 440.6 -869 2.019 0.2454

Model averaging

Table 3: Conditional model coefficients, standard error and 95% confidence limits are shown for the wing length averaged model. Bold rows indicate signficant effects.

# Model averaging

#summary(model.avg(body_size_dredge, subset = delta < 6))

Size_CIs <- confint(model.avg(body_size_dredge, subset = delta < 6)) %>% as.data.frame()

Size_estimate <- coefTable(model.avg(body_size_dredge, subset = delta < 6)) %>% as.data.frame()

Size_model_avg <- data.frame(Size_estimate, Size_CIs) %>% select(Estimate, Std..Error,  X2.5.., X97.5..)

names(Size_model_avg)[names(Size_model_avg) == "Estimate"] <- "Conditional average estimate"
names(Size_model_avg)[names(Size_model_avg) == "Std..Error"] <- "Standard Error"
names(Size_model_avg)[names(Size_model_avg) == "X2.5.."] <- "2.5% Interval"
names(Size_model_avg)[names(Size_model_avg) == "X97.5.."] <- "97.5% Interval"

pander(Size_model_avg, split.cell = 40, split.table = Inf, emphasize.strong.rows = (2))
  Conditional average estimate Standard Error 2.5% Interval 97.5% Interval
(Intercept) 1.063 0.0156 1.032 1.093
SexM -0.08628 0.007203 -0.1004 -0.07216
factor(Duplicate)2 -0.002049 0.01004 -0.02173 0.01763
body_size_plot_data <- body_size %>% 
  mutate(Social_survival = replace(as.character(Social_survival), Social_survival == "L", "Died as larva"),
        Social_survival = replace(as.character(Social_survival), Social_survival == "P", "Died as pupa"),
         Social_survival = replace(as.character(Social_survival), Social_survival == "N", "Survived to adulthood"),
        Sex = replace(as.character(Sex), Sex == "F", "Female"),
         Sex = replace(as.character(Sex), Sex == "M", "Male"))

body_size_summary <- body_size_plot_data %>% 
  dplyr::group_by(Sex) %>%
  dplyr::summarise(Mean_wing_length = mean(Wing_length), Lower = (Mean_wing_length - SE(Wing_length)* 1.96), Upper = (Mean_wing_length + SE(Wing_length)*1.96), n = n()) %>% rename(Wing_length = Mean_wing_length)


body_size_plot_data %>%
  ggplot(aes(x = Sex, y = Wing_length, fill = Sex, colour = Sex)) +
  geom_quasirandom(data = body_size_plot_data, width = 0.3, size = 2, alpha =  0.5) +
  scale_colour_manual(values = c("Female" = "#fe9929", "Male" = "#41b6c4")) +
  geom_point(data = body_size_summary, aes(x = Sex, y = Wing_length), size = 3, colour='black') +
  geom_errorbar(data = body_size_summary, aes(x = Sex, ymax = Upper, ymin = Lower, width = 0), colour = "black") +
  labs(x = "Sex", y = "Wing length (mm)") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(panel.grid.major.x = element_blank())

Figure 5: Wing length is affected by an individual’s sex and the success of a social competitor. The coloured points show the development time for individual flies. The black points show the mean wing length for males and females and its 95% confidence limits.

Female reproductive output

To effectively accommodate zero-inflation, we modelled female offspring production using the glmmTMB package (Brooks et al. 2017). This package allows us to fit hurdle models and zero-inflated models.

Hurdle models treat zero-count and nonzero outcomes as two completely separate categories, while zero-inflated models treat zero-count outcomes as a mixture of structural and sampling zeros.

We analysed the number of offspring produced by females using a hurdle model with negative binomial errors. This approach allowed us to answer two questions: (1) did mtDNA and/or competition affect the incidence of failing to produce any offspring? and (2) for females that produced at least one offspring, was the number of offspring produced affected by mtDNA/competition?

The model:

Maternal_total_offspring ~ Focal_haplotype * Social_haplotype + factor(Duplicate) + (1|Block) + (1|Pipette_tip)

female_hurdle_model <- glmmTMB(Maternal_total_offspring ~ Focal_haplotype * Social_haplotype + factor(Duplicate) + (1|Block) + (1|Pipette_tip), data = female_reproductive_output, family = list(family="truncated_nbinom1",link="log"), ziformula = ~., na.action = na.fail, REML = FALSE)

Model evaluation (the dredge is screwed)

Table S4: Evaluation of the female reproductive output model. All possible models were evaluated from the global model that included a three-way interaction between focal haplotype, social haplotype and social survival, the standalone fixed effect ‘duplicate’, and the random factor ‘Block’. As there was no clear top model, the final model was calculated via model averaging. The zero-inflated results correspond to question (1), while the conditional results correspond to question (2) above.

# Compare all possible combinations of models (from the global model)

if(file.exists("female_dredge.rds")){ # If already done, just load the results
  female_dredge <- readRDS("female_dredge.rds")
} else {female_dredge <- dredge(female_hurdle_model)                  # If not already done, run all the models and save the results
lapply(c("female_dredge"), save_it)
}

female_table <- subset(female_dredge, delta < 6, recalc.weights = FALSE) %>% as.data.frame()

names(female_table)[names(female_table) == "cond((Int))"] <- "Conditional intercept"
names(female_table)[names(female_table) == "zi((Int))"] <- "Zero-inflated intercept"
names(female_table)[names(female_table) == "disp((Int))"] <- "Dispersion factor intercept"
names(female_table)[names(female_table) == "cond(factor(duplicate))"] <- "Conditional (Duplicate)"
names(female_table)[names(female_table) == "cond(Focal_haplotype)"] <- "Conditional (Focal haplotype)"
names(female_table)[names(female_table) == "cond(Social_haplotype)"] <- "Conditional (Social haplotype)"
names(female_table)[names(female_table) == "cond(Focal_haplotype:Social_haplotype)"] <- "Conditional (Focal haplotype x Social haplotype)"
names(female_table)[names(female_table) == "zi(factor(duplicate))"] <- "Zero-inflated (Duplicate)"
names(female_table)[names(female_table) == "zi(Focal_haplotype)"] <- "Zero-inflated (Focal haplotype)"
names(female_table)[names(female_table) == "zi(Social_haplotype)"] <- "Zero-inflated (Social haplotype)"
names(female_table)[names(female_table) == "zi(Focal_haplotype:Social_haplotype)"] <- "Zero-inflated (Focal haplotype x Social haplotype)"
names(female_table)[names(female_table) == "df"] <- "Degrees of freedom"
names(female_table)[names(female_table) == "logLik"] <- "Log likelihood"
names(female_table)[names(female_table) == "AICc"] <- "AICc"
names(female_table)[names(female_table) == "delta"] <- "Delta"
names(female_table)[names(female_table) == "weight"] <- "Weight"

pander(female_table, split.cell = 40, split.table = Inf)

Model averaging

Table 4: Conditional (after hurdle) and zi (zero-hurdle requirement) model coefficients, standard error and 95% confidence limits are shown for the female offspring production averaged model. Bold rows indicate signficant effects.

#summary(model.avg(female_dredge, subset = delta < 6))

Female_CIs <- confint(model.avg(female_dredge, subset = delta < 6)) %>% as.data.frame()

Female_estimate <- coefTable(model.avg(female_dredge, subset = delta < 6)) %>% as.data.frame()

Female_model_avg <- data.frame(Female_estimate, Female_CIs) %>% select(Estimate, Std..Error,  X2.5.., X97.5..)

names(Female_model_avg)[names(Female_model_avg) == "Estimate"] <- "Conditional average estimate"
names(Female_model_avg)[names(Female_model_avg) == "Std..Error"] <- "Standard Error"
names(Female_model_avg)[names(Female_model_avg) == "X2.5.."] <- "2.5% Interval"
names(Female_model_avg)[names(Female_model_avg) == "X97.5.."] <- "97.5% Interval"

pander(Female_model_avg, split.cell = 40, split.table = Inf, emphasize.strong.rows = c(5:7, 12))
  Conditional average estimate Standard Error 2.5% Interval 97.5% Interval
cond((Int)) 4.043 0.08577 3.875 4.211
cond(Focal_haplotypeBrownsville) -0.1392 0.07869 -0.2934 0.01508
cond(Focal_haplotypeDahomey) -0.0619 0.07448 -0.2079 0.08408
cond(Focal_haplotypeIsrael) 0.01165 0.07877 -0.1427 0.166
cond(Focal_haplotypeSweden) -0.2032 0.0811 -0.3622 -0.04424
cond(Social_survivalN) -0.239 0.06266 -0.3618 -0.1162
cond(Social_survivalP) -0.2427 0.07728 -0.3942 -0.09124
zi((Int)) -1.356 0.3366 -2.016 -0.6965
zi(factor(duplicate)2) 0.4145 0.2212 -0.01899 0.8481
zi(Social_haplotypeBrownsville) 0.5444 0.3598 -0.1608 1.249
zi(Social_haplotypeDahomey) 0.1914 0.3545 -0.5034 0.8862
zi(Social_haplotypeIsrael) 1.039 0.3373 0.3783 1.7
zi(Social_haplotypeSweden) 0.3964 0.3629 -0.3149 1.108
zi(Social_survivalN) 0.3757 0.2577 -0.1294 0.8807
zi(Social_survivalP) 0.1447 0.3312 -0.5044 0.7938
cond(factor(duplicate)2) 0.01601 0.05657 -0.09486 0.1269
zi(Focal_haplotypeBrownsville) 0.01499 0.3265 -0.625 0.655
zi(Focal_haplotypeDahomey) -0.2686 0.3341 -0.9233 0.3862
zi(Focal_haplotypeIsrael) 0.2045 0.328 -0.4383 0.8474
zi(Focal_haplotypeSweden) -0.3776 0.3652 -1.094 0.3382
female_zi_plot_data <- female_reproductive_output %>%
  mutate(Binary_maternal_offspring = ifelse(Maternal_total_offspring > 0, "1", "0"))

female_zi_summary <- female_zi_plot_data %>% 
  dplyr::group_by(Social_haplotype) %>%
  dplyr::summarise(number_producing_offspring = sum(Binary_maternal_offspring == 1), number_zero_offspring = sum(Binary_maternal_offspring == 0)) %>%
  as.data.frame()

female_zi_CIs <- get_CIs_for_binomial_trials(female_zi_summary$number_producing_offspring, female_zi_summary$number_zero_offspring) %>% rename(Binary_maternal_offspring = Proportion)

female_zi_summary <- cbind(female_zi_summary, female_zi_CIs)

female_zi_plot_data %>%
  ggplot(aes(x = Social_haplotype, y = Binary_maternal_offspring, fill = Social_haplotype, colour = Social_haplotype)) +
  geom_point(data = female_zi_summary, aes(x = Social_haplotype, y = Binary_maternal_offspring), size = 3, colour='black') +
  geom_errorbar(data = female_zi_summary, aes(x = Social_haplotype, ymax = upperCI, ymin = lowerCI, width = 0), colour = "black") +
  labs(x = "Social male mtDNA haplotype", y = "Proportion of females producing offspring") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(panel.grid.major.x = element_blank())

Figure 6: The proportion of females successfully producing offspring is affected by the mtDNA of a social male competitor during larval development. Black points show the mean for each social haplotype and associated confidence intervals. Data corresponds to the hurdle (binomial) component of the hurdle model.

female_cond_plot_data <- female_reproductive_output %>% 
  mutate(Social_survival = replace(as.character(Social_survival), Social_survival == "L", "Died as larva"),
        Social_survival = replace(as.character(Social_survival), Social_survival == "P", "Died as pupa"),
         Social_survival = replace(as.character(Social_survival), Social_survival == "N", "Survived to adulthood")) %>%
  filter(Maternal_total_offspring != 0)

female_cond_summary <- female_cond_plot_data %>% 
  dplyr::group_by(Focal_haplotype) %>%
  dplyr::summarise(Mean_offspring = mean(Maternal_total_offspring), Lower = (Mean_offspring - SE(Maternal_total_offspring)* 1.96), Upper = (Mean_offspring + SE(Maternal_total_offspring)*1.96), n = n()) %>% rename(Maternal_total_offspring = Mean_offspring)


female_cond_plot_data %>%
  ggplot(aes(x = Focal_haplotype, y = Maternal_total_offspring, fill = Focal_haplotype, colour = Focal_haplotype)) +
  geom_quasirandom(data = female_cond_plot_data, width = 0.3, size = 2, alpha =  0.5) +
  scale_colour_manual(values = c("Barcelona" = "#a50f15", "Brownsville" = "#fe9929", "Dahomey" = "#41b6c4", "Israel" = "#238443" , "Sweden" = "#4a1486")) +
  geom_point(data = female_cond_summary, aes(x = Focal_haplotype, y = Maternal_total_offspring), size = 3, colour='black') +
  geom_errorbar(data = female_cond_summary, aes(x = Focal_haplotype, ymax = Upper, ymin = Lower, width = 0), colour = "black") +
  labs(x = "Female mtDNA haplotype", y = "Number of offspring produced") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(panel.grid.major.x = element_blank())

Figure 7: Number of offspring produced by females that produced at least one offspring, split by mitochondrial haplotype. Data corresponds to the conditional component of the hurdle model. Coloured points show the number of offspring produced by individual females. The black points show the mean reproductive output for females and its 95% confidence limits.

Male adult fitness

We follow the classic approach to sperm competition analysis and consider male fitness as the proportion of offspring sired by the mitoline male while competing against a standard bw male.

Here we are measuring male fitness as 1) the ability of a male to inseminate a female in the presence of another male and 2) the competitive ability of his sperm within females that have been inseminated by another male. Zero-count outcomes can therefore arise due to either structural and sampling zeros (or at least processes that are likely to follow different distributions). We use a zero-inflated binomial model.

The Brownsville haplotype renders males sterile alongside the w1118 nuclear background and sub-fertile alongside all other tested backgrounds. In our experiment, we find that Brownsville males are able to produce offspring but to a very limited capacity. Due to this, our model will not converge with the Brownsville males in the dataset. Therefore, we acknowledge that there is an effect of the Brownsville focal haplotype on male fitness and then remove it from the dataset.

We fit a zero-inflated binomial model:

(focal_male_offspring, Offspring_counted) ~ Focal_haplotype * Social_haplotype + Social_haplotype * Social_survival + Duplicate + (1|Individual) + (1|Block)

We fit ‘Individual’ as a random effect to ensure that the proportion of offspring is calculated for each mitoline male, rather than as an overall proportion for each group of males.

Table S5: Anova results from zero-inflated binomial model for male adult fitness.

Male_fitness_without_Brownsville <- Male_fitness %>% filter(Focal_haplotype != "Brownsville") %>% mutate(Individual = 1:n())

response <- cbind(Male_fitness_without_Brownsville$Focal_male_offspring, Male_fitness_without_Brownsville$Bw_offspring)

male_zi_model <- glmmTMB(response ~ Focal_haplotype * Social_haplotype + factor(Duplicate), data = Male_fitness_without_Brownsville, family = binomial, zi= ~., na.action = na.fail, REML = FALSE, control = glmmTMBControl(optCtrl = list(iter.max = 1000, eval.max = 1000), profile = TRUE, collect = FALSE))


male_zi_model <- glmmTMB(response ~ Focal_haplotype + Social_haplotype + factor(Duplicate) + (1|Block) + (1|Individual), data = Male_fitness_without_Brownsville, family = binomial, zi= ~., na.action = na.fail, REML = FALSE, control = glmmTMBControl(optCtrl = list(iter.max = 1000, eval.max = 1000), profile = TRUE, collect = FALSE))

male_zi_model <- glmmTMB(response ~ Focal_haplotype + Social_haplotype * Social_survival + factor(Duplicate) + (1|Block) + (1|Individual), data = Male_fitness_without_Brownsville, family = binomial, ziformula = ~., na.action = na.fail, REML = FALSE, control = glmmTMBControl(optCtrl = list(iter.max = 1000, eval.max = 1000), profile = TRUE, collect = FALSE))

if(file.exists("male_dredge.rds")){ # If already done, just load the results
  male_dredge <- readRDS("male_dredge.rds")
} else {male_dredge <- dredge(male_zi_model) # If not already done, run the dredge and save the results
lapply(c("male_dredge"), save_it)
}

Male_table <- subset(male_dredge, delta < 6, recalc.weights = FALSE) %>% as.data.frame()

Model averaging

Table 5: Conditional (after hurdle) and zi (zero-hurdle requirement) model coefficients, standard error and 95% confidence limits are shown for the male adult fitness averaged model. Bold rows indicate signficant effects.

#summary(model.avg(male_dredge, subset = delta < 6))

Male_CIs <- confint(model.avg(male_dredge, subset = delta < 6)) %>% as.data.frame()

Male_estimate <- coefTable(model.avg(male_dredge, subset = delta < 6)) %>% as.data.frame()

Male_model_avg <- data.frame(Male_estimate, Male_CIs) %>% select(Estimate, Std..Error,  X2.5.., X97.5..)

names(Male_model_avg)[names(Male_model_avg) == "Estimate"] <- "Conditional average estimate"
names(Male_model_avg)[names(Male_model_avg) == "Std..Error"] <- "Standard Error"
names(Male_model_avg)[names(Male_model_avg) == "X2.5.."] <- "2.5% Interval"
names(Male_model_avg)[names(Male_model_avg) == "X97.5.."] <- "97.5% Interval"

pander(Male_model_avg, split.cell = 40, split.table = Inf, emphasize.strong.rows = c(5:7, 12))
male_plot_data <- Male_fitness %>% 
  mutate(Social_survival = replace(as.character(Social_survival), Social_survival == "L", "Died as larva"),
        Social_survival = replace(as.character(Social_survival), Social_survival == "P", "Died as pupa"),
         Social_survival = replace(as.character(Social_survival), Social_survival == "N", "Survived to adulthood"))

Male_fitness_summary_socialmt <- male_plot_data %>% 
  group_by(Social_haplotype) %>%
  dplyr::summarise(Mean_proportion_focal = sum(Proportion_focal) / length(Proportion_focal), Lower = (Mean_proportion_focal - SE(Proportion_focal)* 1.96), Upper = (Mean_proportion_focal + SE(Proportion_focal)*1.96), n = n()) %>% rename(Proportion_focal = Mean_proportion_focal)

Male_fitness_summary_focalmt <- male_plot_data %>% 
  group_by(Focal_haplotype) %>%
  dplyr::summarise(Mean_proportion_focal = sum(Proportion_focal) / length(Proportion_focal), Lower = (Mean_proportion_focal - SE(Proportion_focal)* 1.96), Upper = (Mean_proportion_focal + SE(Proportion_focal)*1.96), n = n()) %>% rename(Proportion_focal = Mean_proportion_focal)


Male_focal_plot <- male_plot_data %>%
  ggplot(aes(x = Focal_haplotype, y = Proportion_focal, fill = Focal_haplotype, colour = Focal_haplotype)) +
  geom_quasirandom(data = male_plot_data, width = 0.3, alpha =  0.5, aes(size = Offspring_counted)) +
  scale_size_continuous(range = c(0.5, 6), labels = NULL, breaks = c(20, 40, 60, 80, 100, 120)) +
  scale_colour_manual(values = c("Barcelona" = "#a50f15", "Brownsville" = "#fe9929", "Dahomey" = "#41b6c4", "Israel" = "#238443" , "Sweden" = "#4a1486")) +
  geom_point(data = Male_fitness_summary_focalmt, aes(x = Focal_haplotype, y = Proportion_focal), size = 3, colour='black') +
  geom_errorbar(data = Male_fitness_summary_focalmt, aes(x = Focal_haplotype, ymax = Upper, ymin = Lower, width = 0), colour = "black") +
  labs(x = "Focal mtDNA haplotype", y = "Proportion of offspring sired by focal male") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(panel.grid.major.x = element_blank())


Male_social_plot <- male_plot_data %>%
  ggplot(aes(x = Social_haplotype, y = Proportion_focal, fill = Social_haplotype, colour = Social_haplotype)) +
  geom_quasirandom(data = male_plot_data, width = 0.3, alpha =  0.5, aes(size = Offspring_counted)) +
  scale_size_continuous(range = c(0.5, 6), labels = NULL, breaks = c(20, 40, 60, 80, 100, 120)) +
  scale_colour_manual(values = c("Barcelona" = "#a50f15", "Brownsville" = "#fe9929", "Dahomey" = "#41b6c4", "Israel" = "#238443" , "Sweden" = "#4a1486")) +
  geom_point(data = Male_fitness_summary_socialmt, aes(x = Social_haplotype, y = Proportion_focal), size = 3, colour='black') +
  geom_errorbar(data = Male_fitness_summary_socialmt, aes(x = Social_haplotype, ymax = Upper, ymin = Lower, width = 0), colour = "black") +
  labs(x = "Social mtDNA haplotype", y = "Proportion of offspring sired by focal male") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(panel.grid.major.x = element_blank())

ggarrange(Male_focal_plot, Male_social_plot)

Figure 8: The proportion of offspring produced by focal males competing with standard bw males, split by a) the males mtDNA haplotype and b) the mtDNA haplotype of a social competitor during development. Coloured points represent individual males, with larger points indicating a high number of offspring produced in the vial (sired by either male). Black points show the mean proportion of offspring sired by the focal male, with asssociated 95% confidence intervals. Means are not adjusted for zero inflation.

Raw data and reproducibility

Table of raw data

For completeness, transparency and for purposes of data archiving, we include the raw data in this report.

Table S6: the raw dataset used in the present study.

kable(fitness_data %>% filter(!is.na(Survived)), "html") %>%
  kable_styling() %>%
  scroll_box(width = "100%", height = "800px")
Individual Block Duplicate Replicate Sex Focal_haplotype Social_haplotype Survived Social_survival Dev_time Day Hours Wing_length Maternal_female_offspring Maternal_male_offspring Maternal_total_offspring Paternal_focal_offspring Patneral_bw_offspring
1 1 1 1 F Barcelona Barcelona 1 L NA NA NA NA 35 24 59 NA NA
2 1 1 1 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
3 1 1 1 F Brownsville Barcelona 1 N 249 10 11 NA 36 45 81 NA NA
4 1 1 1 M Barcelona Brownsville 1 N NA NA NA NA NA NA NA 0 41
5 1 1 1 F Dahomey Barcelona 1 N 249 10 11 NA 17 23 40 NA NA
6 1 1 1 M Barcelona Dahomey 1 N 242 10 4 NA NA NA NA 42 0
7 1 1 1 F Israel Barcelona 1 N NA NA NA NA 0 0 0 NA NA
8 1 1 1 M Barcelona Israel 1 N 242 10 4 NA NA NA NA 32 26
9 1 1 1 F Sweden Barcelona 1 N NA NA NA NA 7 15 22 NA NA
10 1 1 1 M Barcelona Sweden 1 N 267 11 5 NA NA NA NA 0 0
11 1 1 1 F Barcelona Brownsville 0 P NA NA NA NA 0 0 0 NA NA
12 1 1 1 M Brownsville Barcelona 0 P NA NA NA NA NA NA NA 0 0
15 1 1 1 F Dahomey Brownsville 1 N 242 10 4 NA 23 31 54 NA NA
16 1 1 1 M Brownsville Dahomey 1 N 245 10 7 NA NA NA NA 0 63
17 1 1 1 F Israel Brownsville 1 N 243 10 5 NA NA NA NA NA NA
18 1 1 1 M Brownsville Israel 1 N NA NA NA NA NA NA NA 0 0
19 1 1 1 F Sweden Brownsville 1 L 266 11 4 NA 26 39 65 NA NA
20 1 1 1 M Brownsville Sweden 0 N NA NA NA NA NA NA NA 0 0
21 1 1 1 F Barcelona Dahomey 1 N NA NA NA NA 8 21 29 NA NA
22 1 1 1 M Dahomey Barcelona 1 N 267 11 5 NA NA NA NA 11 26
23 1 1 1 F Brownsville Dahomey 1 N 242 10 4 NA 11 22 33 NA NA
24 1 1 1 M Dahomey Brownsville 1 N NA NA NA NA NA NA NA 0 13
25 1 1 1 F Dahomey Dahomey 1 N 265 11 3 NA NA NA NA NA NA
26 1 1 1 M Dahomey Dahomey 1 N NA NA NA NA NA NA NA 128 0
27 1 1 1 F Israel Dahomey 0 N NA NA NA NA 0 0 0 NA NA
28 1 1 1 M Dahomey Israel 1 L 248 10 10 NA NA NA NA 163 0
29 1 1 1 F Sweden Dahomey 1 N 245 10 7 NA 16 27 43 NA NA
30 1 1 1 M Dahomey Sweden 1 N 248 10 10 NA NA NA NA 105 0
31 1 1 1 F Barcelona Israel 0 N NA NA NA NA 0 0 0 NA NA
32 1 1 1 M Israel Barcelona 1 L 249 10 11 NA NA NA NA 25 25
38 1 1 1 M Israel Israel 1 NA 243 10 5 NA NA NA NA 0 58
41 1 1 1 F Barcelona Sweden 1 N NA NA NA NA 0 0 0 NA NA
42 1 1 1 M Sweden Barcelona 1 N NA NA NA NA NA NA NA 0 0
43 1 1 1 F Brownsville Sweden 1 N 270 11 8 NA 31 22 53 NA NA
44 1 1 1 M Sweden Brownsville 1 N 267 11 5 NA NA NA NA 0 0
45 1 1 1 F Dahomey Sweden 1 N NA NA NA NA 23 32 55 NA NA
46 1 1 1 M Sweden Dahomey 1 N 242 10 4 NA NA NA NA 0 52
47 1 1 1 F Israel Sweden 1 N NA NA NA NA 18 22 40 NA NA
48 1 1 1 M Sweden Israel 1 N NA NA NA NA NA NA NA 91 14
49 1 1 1 F Sweden Sweden 1 N 273 11 11 NA 18 19 37 NA NA
50 1 1 1 M Sweden Sweden 1 N NA NA NA NA NA NA NA 68 4
51 1 1 2 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
52 1 1 2 M Barcelona Barcelona 1 L 245 10 7 NA NA NA NA 138 0
53 1 1 2 F Brownsville Barcelona 1 N 269 11 7 NA 9 17 26 NA NA
54 1 1 2 M Barcelona Brownsville 1 N 269 11 7 NA NA NA NA 74 0
55 1 1 2 F Dahomey Barcelona 1 N 267 11 5 NA 25 19 44 NA NA
56 1 1 2 M Barcelona Dahomey 1 N 283 11 21 NA NA NA NA 0 25
57 1 1 2 F Israel Barcelona 0 N NA NA NA NA 0 0 0 NA NA
58 1 1 2 M Barcelona Israel 1 P 288 12 2 NA NA NA NA 0 0
59 1 1 2 F Sweden Barcelona 1 N 283 11 21 NA 28 19 47 NA NA
60 1 1 2 M Barcelona Sweden 1 N 283 11 21 NA NA NA NA 70 46
61 1 1 2 F Barcelona Brownsville 1 N 269 11 7 NA 0 0 0 NA NA
62 1 1 2 M Brownsville Barcelona 1 N NA NA NA NA NA NA NA 0 32
63 1 1 2 F Brownsville Brownsville 1 N NA NA NA NA 27 22 49 NA NA
64 1 1 2 M Brownsville Brownsville 1 N NA NA NA NA NA NA NA 0 0
65 1 1 2 F Dahomey Brownsville 1 P 270 11 8 NA 13 16 29 NA NA
66 1 1 2 M Brownsville Dahomey 0 N NA NA NA NA NA NA NA 0 0
67 1 1 2 F Israel Brownsville 1 N 273 11 11 NA 0 0 0 NA NA
68 1 1 2 M Brownsville Israel 1 N 270 11 8 NA NA NA NA 0 52
69 1 1 2 F Sweden Brownsville 1 N 269 11 7 NA 9 10 19 NA NA
70 1 1 2 M Brownsville Sweden 1 N 271 11 9 NA NA NA NA 0 21
71 1 1 2 F Barcelona Dahomey 1 N NA NA NA NA 0 0 0 NA NA
72 1 1 2 M Dahomey Barcelona 1 N 269 11 7 NA NA NA NA 0 0
73 1 1 2 F Brownsville Dahomey 1 N 243 10 5 NA 18 29 47 NA NA
74 1 1 2 M Dahomey Brownsville 1 N 248 10 10 NA NA NA NA 0 49
75 1 1 2 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
76 1 1 2 M Dahomey Dahomey 1 P 251 10 13 NA NA NA NA 0 0
77 1 1 2 F Israel Dahomey 1 N NA NA NA NA 35 20 55 NA NA
78 1 1 2 M Dahomey Israel 1 N 248 10 10 NA NA NA NA 81 8
79 1 1 2 F Sweden Dahomey 0 N NA NA NA NA 0 0 0 NA NA
80 1 1 2 M Dahomey Sweden 1 L 274 11 12 NA NA NA NA 1 23
81 1 1 2 F Barcelona Israel 0 N NA NA NA NA 0 0 0 NA NA
82 1 1 2 M Israel Barcelona 1 P 269 11 7 NA NA NA NA 0 55
85 1 1 2 F Dahomey Israel 0 N NA NA NA NA 0 0 0 NA NA
86 1 1 2 M Israel Dahomey 1 P 267 11 5 NA NA NA NA 200 0
87 1 1 2 F Israel Israel 0 N NA NA NA NA 0 0 0 NA NA
88 1 1 2 M Israel Israel 1 L 248 10 10 NA NA NA NA 0 0
89 1 1 2 F Sweden Israel 1 N 288 12 2 NA 0 0 0 NA NA
90 1 1 2 M Israel Sweden 1 N 270 11 8 NA NA NA NA 22 49
91 1 1 2 F Barcelona Sweden 1 N NA NA NA NA 19 34 53 NA NA
92 1 1 2 M Sweden Barcelona 1 N NA NA NA NA NA NA NA 75 0
93 1 1 2 F Brownsville Sweden 1 N 267 11 5 NA 0 0 0 NA NA
94 1 1 2 M Sweden Brownsville 1 N NA NA NA NA NA NA NA 104 2
95 1 1 2 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
96 1 1 2 M Sweden Dahomey 1 P NA NA NA NA NA NA NA 0 0
99 1 1 2 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
100 1 1 2 M Sweden Sweden 1 L NA NA NA NA NA NA NA 47 0
101 1 1 3 F Barcelona Barcelona 1 N 249 10 11 NA 23 27 50 NA NA
102 1 1 3 M Barcelona Barcelona 1 N 249 10 11 NA NA NA NA 0 0
103 1 1 3 F Brownsville Barcelona 1 N 269 11 7 NA 0 0 0 NA NA
104 1 1 3 M Barcelona Brownsville 1 N NA NA NA NA NA NA NA 141 15
105 1 1 3 F Dahomey Barcelona 1 N 246 10 8 NA 22 21 43 NA NA
106 1 1 3 M Barcelona Dahomey 1 N NA NA NA NA NA NA NA 3 27
107 1 1 3 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
108 1 1 3 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
109 1 1 3 F Sweden Barcelona 1 N NA NA NA NA 8 8 16 NA NA
110 1 1 3 M Barcelona Sweden 1 N NA NA NA NA NA NA NA 11 10
111 1 1 3 F Barcelona Brownsville 1 L NA NA NA NA 20 19 39 NA NA
112 1 1 3 M Brownsville Barcelona 0 N NA NA NA NA NA NA NA 0 0
113 1 1 3 F Brownsville Brownsville 1 P NA NA NA NA 0 0 0 NA NA
114 1 1 3 M Brownsville Brownsville 0 N NA NA NA NA NA NA NA 0 0
117 1 1 3 F Israel Brownsville 1 P NA NA NA NA 0 0 0 NA NA
118 1 1 3 M Brownsville Israel 0 N NA NA NA NA NA NA NA 0 0
119 1 1 3 F Sweden Brownsville 1 L NA NA NA NA 51 50 101 NA NA
120 1 1 3 M Brownsville Sweden 0 N NA NA NA NA NA NA NA 0 0
121 1 1 3 F Barcelona Dahomey 1 N 248 10 10 NA 22 18 40 NA NA
122 1 1 3 M Dahomey Barcelona 1 N NA NA NA NA NA NA NA 0 11
123 1 1 3 F Brownsville Dahomey 1 L NA NA NA NA 0 0 0 NA NA
124 1 1 3 M Dahomey Brownsville 0 N NA NA NA NA NA NA NA 0 0
125 1 1 3 F Dahomey Dahomey 1 N NA NA NA NA 23 22 45 NA NA
126 1 1 3 M Dahomey Dahomey 1 N 274 11 12 NA NA NA NA 0 0
127 1 1 3 F Israel Dahomey 1 N 274 11 12 NA 0 0 0 NA NA
128 1 1 3 M Dahomey Israel 1 N NA NA NA NA NA NA NA 0 48
130 1 1 3 M Dahomey Sweden 1 NA NA NA NA NA NA NA NA 0 95
133 1 1 3 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
134 1 1 3 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
135 1 1 3 F Dahomey Israel 0 N NA NA NA NA 0 0 0 NA NA
136 1 1 3 M Israel Dahomey 1 L NA NA NA NA NA NA NA 94 0
137 1 1 3 F Israel Israel 1 P NA NA NA NA NA NA NA NA NA
138 1 1 3 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
141 1 1 3 F Barcelona Sweden 1 N 287 12 1 NA 0 0 0 NA NA
142 1 1 3 M Sweden Barcelona 1 N NA NA NA NA NA NA NA 0 0
143 1 1 3 F Brownsville Sweden 0 N NA NA NA NA 0 0 0 NA NA
144 1 1 3 M Sweden Brownsville 1 L NA NA NA NA NA NA NA 0 0
147 1 1 3 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
148 1 1 3 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
149 1 1 3 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
150 1 1 3 M Sweden Sweden 1 P NA NA NA NA NA NA NA 93 17
151 1 2 4 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
152 1 2 4 M Barcelona Barcelona 1 P 267 11 5 NA NA NA NA NA NA
153 1 2 4 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
154 1 2 4 M Barcelona Brownsville 1 L NA NA NA NA NA NA NA 0 117
155 1 2 4 F Dahomey Barcelona 1 P 243 10 5 NA 0 0 0 NA NA
156 1 2 4 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
157 1 2 4 F Israel Barcelona 1 N 269 11 7 NA 5 8 13 NA NA
158 1 2 4 M Barcelona Israel 1 N 269 11 7 NA NA NA NA 0 2
159 1 2 4 F Sweden Barcelona 0 P NA NA NA NA 0 0 0 NA NA
160 1 2 4 M Barcelona Sweden 0 P NA NA NA NA NA NA NA 0 0
161 1 2 4 F Barcelona Brownsville 0 N NA NA NA NA 0 0 0 NA NA
162 1 2 4 M Brownsville Barcelona 1 P 248 10 10 NA NA NA NA 0 0
163 1 2 4 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
164 1 2 4 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
165 1 2 4 F Dahomey Brownsville 1 L NA NA NA NA 0 0 0 NA NA
166 1 2 4 M Brownsville Dahomey 0 N NA NA NA NA NA NA NA 0 0
167 1 2 4 F Israel Brownsville 1 N 248 10 10 NA 33 46 79 NA NA
168 1 2 4 M Brownsville Israel 1 N NA NA NA NA NA NA NA 0 0
169 1 2 4 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
170 1 2 4 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
171 1 2 4 F Barcelona Dahomey 1 N 248 10 10 NA 28 35 63 NA NA
172 1 2 4 M Dahomey Barcelona 1 N 248 10 10 NA NA NA NA 0 0
173 1 2 4 F Brownsville Dahomey 1 N NA NA NA NA 18 19 37 NA NA
174 1 2 4 M Dahomey Brownsville 1 N NA NA NA NA NA NA NA 0 43
175 1 2 4 F Dahomey Dahomey 1 L NA NA NA NA 21 21 42 NA NA
176 1 2 4 M Dahomey Dahomey 0 N NA NA NA NA NA NA NA 0 0
177 1 2 4 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
178 1 2 4 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
179 1 2 4 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
180 1 2 4 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
181 1 2 4 F Barcelona Israel 1 N NA NA NA NA 0 0 0 NA NA
182 1 2 4 M Israel Barcelona 1 N NA NA NA NA NA NA NA 0 28
183 1 2 4 F Brownsville Israel 0 P NA NA NA NA 0 0 0 NA NA
184 1 2 4 M Israel Brownsville 0 P NA NA NA NA NA NA NA 0 0
185 1 2 4 F Dahomey Israel 1 L NA NA NA NA 0 0 0 NA NA
186 1 2 4 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
187 1 2 4 F Israel Israel 1 P NA NA NA NA 0 0 0 NA NA
188 1 2 4 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
189 1 2 4 F Sweden Israel 0 N NA NA NA NA 0 0 0 NA NA
190 1 2 4 M Israel Sweden 1 L 250 10 12 NA NA NA NA 64 0
191 1 2 4 F Barcelona Sweden 1 L 250 10 12 NA 25 30 55 NA NA
192 1 2 4 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
193 1 2 4 F Brownsville Sweden 1 N NA NA NA NA 30 33 63 NA NA
194 1 2 4 M Sweden Brownsville 1 N NA NA NA NA NA NA NA 97 2
195 1 2 4 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
196 1 2 4 M Sweden Dahomey 1 P NA NA NA NA NA NA NA 116 2
197 1 2 4 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
198 1 2 4 M Sweden Israel 1 P 269 11 7 NA NA NA NA 79 17
199 1 2 4 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
200 1 2 4 M Sweden Sweden 1 L 248 10 10 NA NA NA NA 96 0
201 1 2 5 F Barcelona Barcelona 1 P NA NA NA NA NA NA NA NA NA
202 1 2 5 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
203 1 2 5 F Brownsville Barcelona 1 N 243 10 5 NA 15 18 33 NA NA
204 1 2 5 M Barcelona Brownsville 1 N NA NA NA NA NA NA NA 19 51
205 1 2 5 F Dahomey Barcelona 1 N 269 11 7 NA 4 6 10 NA NA
206 1 2 5 M Barcelona Dahomey 1 N NA NA NA NA NA NA NA 57 8
207 1 2 5 F Israel Barcelona 1 N 269 11 7 NA 0 0 0 NA NA
208 1 2 5 M Barcelona Israel 1 N NA NA NA NA NA NA NA 0 101
209 1 2 5 F Sweden Barcelona 1 N NA NA NA NA NA NA NA NA NA
210 1 2 5 M Barcelona Sweden 1 N NA NA NA NA NA NA NA 79 0
213 1 2 5 F Brownsville Brownsville 1 N NA NA NA NA 17 22 39 NA NA
214 1 2 5 M Brownsville Brownsville 1 N NA NA NA NA NA NA NA 0 0
215 1 2 5 F Dahomey Brownsville 1 N NA NA NA NA 28 37 65 NA NA
216 1 2 5 M Brownsville Dahomey 1 N NA NA NA NA NA NA NA 0 34
217 1 2 5 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
218 1 2 5 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
219 1 2 5 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
220 1 2 5 M Brownsville Sweden 1 L 274 11 12 NA NA NA NA 0 20
221 1 2 5 F Barcelona Dahomey 0 P NA NA NA NA 0 0 0 NA NA
222 1 2 5 M Dahomey Barcelona 0 P NA NA NA NA NA NA NA 0 0
223 1 2 5 F Brownsville Dahomey 1 N 267 11 5 NA 0 0 0 NA NA
224 1 2 5 M Dahomey Brownsville 1 N 267 11 5 NA NA NA NA 66 0
227 1 2 5 F Israel Dahomey 1 N NA NA NA NA 0 0 0 NA NA
228 1 2 5 M Dahomey Israel 1 N NA NA NA NA NA NA NA 0 8
229 1 2 5 F Sweden Dahomey 1 N 267 11 5 NA 0 0 0 NA NA
230 1 2 5 M Dahomey Sweden 1 N 269 11 7 NA NA NA NA 0 0
231 1 2 5 F Barcelona Israel 0 P NA NA NA NA 0 0 0 NA NA
232 1 2 5 M Israel Barcelona 0 P NA NA NA NA NA NA NA 0 0
233 1 2 5 F Brownsville Israel 1 N 248 10 10 NA 0 0 0 NA NA
234 1 2 5 M Israel Brownsville 1 N 267 11 5 NA NA NA NA 47 0
235 1 2 5 F Dahomey Israel 1 N 270 11 8 NA 30 31 61 NA NA
236 1 2 5 M Israel Dahomey 1 N 274 11 12 NA NA NA NA 11 0
237 1 2 5 F Israel Israel 1 N 248 10 10 NA 23 47 70 NA NA
238 1 2 5 M Israel Israel 1 N 248 10 10 NA NA NA NA 19 0
239 1 2 5 F Sweden Israel 1 P 248 10 10 NA 37 46 83 NA NA
240 1 2 5 M Israel Sweden 0 N NA NA NA NA NA NA NA 0 0
241 1 2 5 F Barcelona Sweden 1 N NA NA NA NA 0 0 0 NA NA
242 1 2 5 M Sweden Barcelona 1 N 269 11 7 NA NA NA NA 21 19
243 1 2 5 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
244 1 2 5 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
247 1 2 5 F Israel Sweden 1 N 250 10 12 NA 26 17 43 NA NA
248 1 2 5 M Sweden Israel 1 N 267 11 5 NA NA NA NA 0 0
249 1 2 5 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
250 1 2 5 M Sweden Sweden 1 P NA NA NA NA NA NA NA 0 1
251 1 2 6 F Barcelona Barcelona 1 N 274 11 12 NA 16 20 36 NA NA
252 1 2 6 M Barcelona Barcelona 1 N 288 12 2 NA NA NA NA 0 74
253 1 2 6 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
254 1 2 6 M Barcelona Brownsville 1 L 269 11 7 NA NA NA NA 29 0
255 1 2 6 F Dahomey Barcelona 1 L 247 10 9 NA 40 43 83 NA NA
256 1 2 6 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
257 1 2 6 F Israel Barcelona 1 L NA NA NA NA 35 33 68 NA NA
258 1 2 6 M Barcelona Israel 0 N NA NA NA NA NA NA NA 0 0
259 1 2 6 F Sweden Barcelona 1 P NA NA NA NA 50 27 77 NA NA
260 1 2 6 M Barcelona Sweden 0 N NA NA NA NA NA NA NA 0 0
261 1 2 6 F Barcelona Brownsville 0 N NA NA NA NA 0 0 0 NA NA
262 1 2 6 M Brownsville Barcelona 1 P 267 11 5 NA NA NA NA 0 0
263 1 2 6 F Brownsville Brownsville 1 L NA NA NA NA 38 46 84 NA NA
264 1 2 6 M Brownsville Brownsville 0 N NA NA NA NA NA NA NA 0 0
265 1 2 6 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
266 1 2 6 M Brownsville Dahomey 1 P 269 11 7 NA NA NA NA NA NA
267 1 2 6 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
268 1 2 6 M Brownsville Israel 1 P NA NA NA NA NA NA NA 0 33
269 1 2 6 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
270 1 2 6 M Brownsville Sweden 1 P NA NA NA NA NA NA NA 0 0
271 1 2 6 F Barcelona Dahomey 0 N NA NA NA NA 0 0 0 NA NA
272 1 2 6 M Dahomey Barcelona 1 L 267 11 5 NA NA NA NA 89 0
273 1 2 6 F Brownsville Dahomey 1 L 243 10 5 NA NA NA NA NA NA
274 1 2 6 M Dahomey Brownsville 0 N NA NA NA NA NA NA NA 0 0
275 1 2 6 F Dahomey Dahomey 1 N NA NA NA NA 14 13 27 NA NA
276 1 2 6 M Dahomey Dahomey 1 N 270 11 8 NA NA NA NA 124 0
277 1 2 6 F Israel Dahomey 1 N NA NA NA NA 0 0 0 NA NA
278 1 2 6 M Dahomey Israel 1 N NA NA NA NA NA NA NA 0 0
281 1 2 6 F Barcelona Israel 1 L NA NA NA NA 0 0 0 NA NA
282 1 2 6 M Israel Barcelona 0 N NA NA NA NA NA NA NA 0 0
283 1 2 6 F Brownsville Israel 1 L 250 10 12 NA 0 0 0 NA NA
284 1 2 6 M Israel Brownsville 0 N NA NA NA NA NA NA NA 0 0
285 1 2 6 F Dahomey Israel 1 P 293 12 7 NA 0 0 0 NA NA
286 1 2 6 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
287 1 2 6 F Israel Israel 1 L 250 10 12 NA 0 0 0 NA NA
288 1 2 6 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
291 1 2 6 F Barcelona Sweden 0 N NA NA NA NA 0 0 0 NA NA
292 1 2 6 M Sweden Barcelona 1 L 269 11 7 NA NA NA NA 18 0
293 1 2 6 F Brownsville Sweden 1 N 267 11 5 NA 24 23 47 NA NA
294 1 2 6 M Sweden Brownsville 1 N NA NA NA NA NA NA NA 64 9
295 1 2 6 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
296 1 2 6 M Sweden Dahomey 1 L 267 11 5 NA NA NA NA 69 11
297 1 2 6 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
298 1 2 6 M Sweden Israel 1 P NA NA NA NA NA NA NA 0 45
299 1 2 6 F Sweden Sweden 1 P NA NA NA NA NA NA NA NA NA
300 1 2 6 M Sweden Sweden 0 N NA NA NA NA NA NA NA 0 0
301 2 1 7 F Barcelona Barcelona 1 N 287 12 1 NA 0 0 0 NA NA
302 2 1 7 M Barcelona Barcelona 1 N 289 12 3 NA NA NA NA 110 7
303 2 1 7 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
304 2 1 7 M Barcelona Brownsville 1 L 294 12 8 NA NA NA NA 94 0
305 2 1 7 F Dahomey Barcelona 0 N NA NA NA NA 0 0 0 NA NA
306 2 1 7 M Barcelona Dahomey 1 L 287 12 1 NA NA NA NA 14 0
307 2 1 7 F Israel Barcelona 1 P 272 11 10 NA NA NA NA NA NA
308 2 1 7 M Barcelona Israel 0 N NA NA NA NA NA NA NA 0 0
309 2 1 7 F Sweden Barcelona 0 L NA NA NA NA 0 0 0 NA NA
310 2 1 7 M Barcelona Sweden 0 L NA NA NA NA NA NA NA 0 0
311 2 1 7 F Barcelona Brownsville 0 N NA NA NA NA 0 0 0 NA NA
312 2 1 7 M Brownsville Barcelona 1 P 290 12 4 NA NA NA NA 0 88
313 2 1 7 F Brownsville Brownsville 1 N 269 11 7 NA 36 37 73 NA NA
314 2 1 7 M Brownsville Brownsville 1 N 268 11 6 NA NA NA NA 0 21
315 2 1 7 F Dahomey Brownsville 1 N 288 12 2 NA 19 32 51 NA NA
316 2 1 7 M Brownsville Dahomey 1 N NA NA NA NA NA NA NA 0 88
317 2 1 7 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
318 2 1 7 M Brownsville Israel 1 L 286 12 0 NA NA NA NA 18 75
319 2 1 7 F Sweden Brownsville 0 P NA NA NA NA 0 0 0 NA NA
320 2 1 7 M Brownsville Sweden 0 P NA NA NA NA NA NA NA 0 0
321 2 1 7 F Barcelona Dahomey 1 N 296 12 10 NA 0 0 0 NA NA
322 2 1 7 M Dahomey Barcelona 1 N NA NA NA NA NA NA NA 0 72
323 2 1 7 F Brownsville Dahomey 1 N 298 12 12 NA 19 16 35 NA NA
324 2 1 7 M Dahomey Brownsville 1 N 295 12 9 NA NA NA NA 46 23
325 2 1 7 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
326 2 1 7 M Dahomey Dahomey 1 P 286 12 0 NA NA NA NA 0 26
327 2 1 7 F Israel Dahomey 0 N NA NA NA NA 0 0 0 NA NA
328 2 1 7 M Dahomey Israel 1 L 266 11 4 NA NA NA NA 0 29
329 2 1 7 F Sweden Dahomey 1 N 269 11 7 NA 39 24 63 NA NA
330 2 1 7 M Dahomey Sweden 1 N 275 11 13 NA NA NA NA 33 16
331 2 1 7 F Barcelona Israel 0 N NA NA NA NA 0 0 0 NA NA
332 2 1 7 M Israel Barcelona 1 P 267 11 5 NA NA NA NA 0 6
333 2 1 7 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
334 2 1 7 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
335 2 1 7 F Dahomey Israel 1 L 287 12 1 NA 39 28 67 NA NA
336 2 1 7 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
337 2 1 7 F Israel Israel 0 N NA NA NA NA 0 0 0 NA NA
338 2 1 7 M Israel Israel 1 L 275 11 13 NA NA NA NA 34 10
339 2 1 7 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
340 2 1 7 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
341 2 1 7 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
342 2 1 7 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
343 2 1 7 F Brownsville Sweden 1 L 264 11 2 NA 26 32 58 NA NA
344 2 1 7 M Sweden Brownsville 0 N NA NA NA NA NA NA NA 0 0
345 2 1 7 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
346 2 1 7 M Sweden Dahomey 1 P NA NA NA NA NA NA NA 45 1
347 2 1 7 F Israel Sweden 1 L 289 12 3 NA 47 41 88 NA NA
348 2 1 7 M Sweden Israel 0 N NA NA NA NA NA NA NA 0 0
349 2 1 7 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
350 2 1 7 M Sweden Sweden 1 P 269 11 7 NA NA NA NA 12 0
351 2 1 8 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
352 2 1 8 M Barcelona Barcelona 1 P 286 12 0 NA NA NA NA 23 37
353 2 1 8 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
354 2 1 8 M Barcelona Brownsville 1 P 268 11 6 NA NA NA NA 107 13
355 2 1 8 F Dahomey Barcelona 1 N 264 11 2 NA 28 20 48 NA NA
356 2 1 8 M Barcelona Dahomey 1 N 271 11 9 NA NA NA NA 48 0
357 2 1 8 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
358 2 1 8 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
359 2 1 8 F Sweden Barcelona 1 L 248 10 10 NA 36 37 73 NA NA
360 2 1 8 M Barcelona Sweden 0 N NA NA NA NA NA NA NA 0 0
361 2 1 8 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
362 2 1 8 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
363 2 1 8 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
364 2 1 8 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
365 2 1 8 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
366 2 1 8 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
367 2 1 8 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
368 2 1 8 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
369 2 1 8 F Sweden Brownsville 1 N 268 11 6 NA 2 6 8 NA NA
370 2 1 8 M Brownsville Sweden 1 N 250 10 12 NA NA NA NA 0 69
371 2 1 8 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
372 2 1 8 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
373 2 1 8 F Brownsville Dahomey 1 N 271 11 9 NA 26 37 63 NA NA
374 2 1 8 M Dahomey Brownsville 1 N NA NA NA NA NA NA NA 0 0
375 2 1 8 F Dahomey Dahomey 1 P 245 10 7 NA 9 10 19 NA NA
376 2 1 8 M Dahomey Dahomey 0 N NA NA NA NA NA NA NA 0 0
377 2 1 8 F Israel Dahomey 1 N NA NA NA NA 17 22 39 NA NA
378 2 1 8 M Dahomey Israel 1 N NA NA NA NA NA NA NA 0 0
379 2 1 8 F Sweden Dahomey 1 N 286 12 0 NA 24 26 50 NA NA
380 2 1 8 M Dahomey Sweden 1 N 270 11 8 NA NA NA NA 64 28
381 2 1 8 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
382 2 1 8 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
383 2 1 8 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
384 2 1 8 M Israel Brownsville 1 P 273 11 11 NA NA NA NA 64 0
385 2 1 8 F Dahomey Israel 0 N NA NA NA NA 0 0 0 NA NA
386 2 1 8 M Israel Dahomey 1 N 286 12 0 NA NA NA NA 0 49
387 2 1 8 F Israel Israel 1 N 269 11 7 NA 0 0 0 NA NA
388 2 1 8 M Israel Israel 0 L NA NA NA NA NA NA NA 0 0
389 2 1 8 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
390 2 1 8 M Israel Sweden 1 P 264 11 2 NA NA NA NA 0 0
391 2 1 8 F Barcelona Sweden 0 N NA NA NA NA 0 0 0 NA NA
392 2 1 8 M Sweden Barcelona 1 N 266 11 4 NA NA NA NA 23 5
393 2 1 8 F Brownsville Sweden 1 N 271 11 9 NA 0 0 0 NA NA
394 2 1 8 M Sweden Brownsville 1 L 264 11 2 NA NA NA NA 19 0
395 2 1 8 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
396 2 1 8 M Sweden Dahomey 0 L NA NA NA NA NA NA NA 0 0
397 2 1 8 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
398 2 1 8 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
399 2 1 8 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
400 2 1 8 M Sweden Sweden 1 P 266 11 4 NA NA NA NA 0 0
401 2 1 9 F Barcelona Barcelona 1 N 268 11 6 NA 0 0 0 NA NA
402 2 1 9 M Barcelona Barcelona 1 N 266 11 4 NA NA NA NA 59 66
403 2 1 9 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
404 2 1 9 M Barcelona Brownsville 1 L 272 11 10 NA NA NA NA 17 0
405 2 1 9 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
406 2 1 9 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
407 2 1 9 F Israel Barcelona 1 N NA NA NA NA 29 17 46 NA NA
408 2 1 9 M Barcelona Israel 1 N NA NA NA NA NA NA NA 96 0
409 2 1 9 F Sweden Barcelona 1 N 287 12 1 NA 18 25 43 NA NA
410 2 1 9 M Barcelona Sweden 1 N 275 11 13 NA NA NA NA 0 50
411 2 1 9 F Barcelona Brownsville 1 L 269 11 7 NA 26 26 52 NA NA
412 2 1 9 M Brownsville Barcelona 0 N NA NA NA NA NA NA NA 0 0
413 2 1 9 F Brownsville Brownsville 1 N NA NA NA NA 26 38 64 NA NA
414 2 1 9 M Brownsville Brownsville 1 N NA NA NA NA NA NA NA 0 100
415 2 1 9 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
416 2 1 9 M Brownsville Dahomey 1 L 270 11 8 NA NA NA NA 0 49
417 2 1 9 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
418 2 1 9 M Brownsville Israel 1 L 263 10 1 NA NA NA NA 0 0
419 2 1 9 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
420 2 1 9 M Brownsville Sweden 1 L 264 11 2 NA NA NA NA 0 90
421 2 1 9 F Barcelona Dahomey 0 N NA NA NA NA 0 0 0 NA NA
422 2 1 9 M Dahomey Barcelona 1 L 283 11 21 NA NA NA NA 57 7
423 2 1 9 F Brownsville Dahomey 0 P NA NA NA NA 0 0 0 NA NA
424 2 1 9 M Dahomey Brownsville 0 P NA NA NA NA NA NA NA 0 0
425 2 1 9 F Dahomey Dahomey 1 N 266 11 4 NA 26 30 56 NA NA
426 2 1 9 M Dahomey Dahomey 1 N 266 11 4 NA NA NA NA 23 2
427 2 1 9 F Israel Dahomey 0 N NA NA NA NA 0 0 0 NA NA
428 2 1 9 M Dahomey Israel 1 L 249 10 11 NA NA NA NA 13 68
429 2 1 9 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
430 2 1 9 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
431 2 1 9 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
432 2 1 9 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
433 2 1 9 F Brownsville Israel 0 N NA NA NA NA 0 0 0 NA NA
434 2 1 9 M Israel Brownsville 1 L 291 12 5 NA NA NA NA 0 55
435 2 1 9 F Dahomey Israel 1 L NA NA NA NA 26 13 39 NA NA
436 2 1 9 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
439 2 1 9 F Sweden Israel 1 L 297 12 11 NA 17 22 39 NA NA
440 2 1 9 M Israel Sweden 0 N NA NA NA NA NA NA NA 0 0
441 2 1 9 F Barcelona Sweden 1 N 269 11 7 NA 31 19 50 NA NA
442 2 1 9 M Sweden Barcelona 1 N 294 12 8 NA NA NA NA 0 27
443 2 1 9 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
444 2 1 9 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
445 2 1 9 F Dahomey Sweden 1 N 262 10 0 NA 35 30 65 NA NA
446 2 1 9 M Sweden Dahomey 1 N 266 11 4 NA NA NA NA 0 34
447 2 1 9 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
448 2 1 9 M Sweden Israel 1 L 265 11 3 NA NA NA NA 79 7
449 2 1 9 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
450 2 1 9 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
451 2 1 10 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
452 2 1 10 M Barcelona Barcelona 1 P 270 11 8 NA NA NA NA 0 0
453 2 1 10 F Brownsville Barcelona 1 L 266 11 4 NA 45 56 101 NA NA
454 2 1 10 M Barcelona Brownsville 0 N NA NA NA NA NA NA NA 0 0
455 2 1 10 F Dahomey Barcelona 0 N NA NA NA NA 0 0 0 NA NA
456 2 1 10 M Barcelona Dahomey 1 P 277 11 15 NA NA NA NA 59 0
457 2 1 10 F Israel Barcelona 0 N NA NA NA NA 0 0 0 NA NA
458 2 1 10 M Barcelona Israel 1 P 271 11 9 NA NA NA NA 74 0
461 2 1 10 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
462 2 1 10 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
463 2 1 10 F Brownsville Brownsville 1 N 265 11 3 NA 0 0 0 NA NA
464 2 1 10 M Brownsville Brownsville 1 N 265 11 3 NA NA NA NA 0 37
465 2 1 10 F Dahomey Brownsville 1 N 286 12 0 NA 17 31 48 NA NA
466 2 1 10 M Brownsville Dahomey 1 N 264 11 2 NA NA NA NA 0 66
467 2 1 10 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
468 2 1 10 M Brownsville Israel 1 P 276 11 14 NA NA NA NA 0 0
469 2 1 10 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
470 2 1 10 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
471 2 1 10 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
472 2 1 10 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
473 2 1 10 F Brownsville Dahomey 0 L NA NA NA NA 0 0 0 NA NA
474 2 1 10 M Dahomey Brownsville 0 L NA NA NA NA NA NA NA 0 0
475 2 1 10 F Dahomey Dahomey 0 P NA NA NA NA 0 0 0 NA NA
476 2 1 10 M Dahomey Dahomey 0 P NA NA NA NA NA NA NA 0 0
479 2 1 10 F Sweden Dahomey 1 L 272 11 10 NA 34 40 74 NA NA
480 2 1 10 M Dahomey Sweden 0 N NA NA NA NA NA NA NA 0 0
481 2 1 10 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
482 2 1 10 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
483 2 1 10 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
484 2 1 10 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
491 2 1 10 F Barcelona Sweden 1 P 287 12 1 NA 22 25 47 NA NA
492 2 1 10 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
493 2 1 10 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
494 2 1 10 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
495 2 1 10 F Dahomey Sweden 1 L 270 11 8 NA 38 33 71 NA NA
496 2 1 10 M Sweden Dahomey 0 N NA NA NA NA NA NA NA 0 0
497 2 1 10 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
498 2 1 10 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
499 2 1 10 F Sweden Sweden 1 N NA NA NA NA 0 0 0 NA NA
500 2 1 10 M Sweden Sweden 1 N 294 12 8 NA NA NA NA 0 0
501 2 2 11 F Barcelona Barcelona 1 N 246 10 8 NA 25 20 45 NA NA
502 2 2 11 M Barcelona Barcelona 1 N 271 11 9 NA NA NA NA 0 64
503 2 2 11 F Brownsville Barcelona 1 N 271 11 9 NA 0 0 0 NA NA
504 2 2 11 M Barcelona Brownsville 1 N NA NA NA NA NA NA NA 0 0
507 2 2 11 F Israel Barcelona 0 N NA NA NA NA 0 0 0 NA NA
508 2 2 11 M Barcelona Israel 1 P 262 10 0 NA NA NA NA 0 80
511 2 2 11 F Barcelona Brownsville 1 N NA NA NA NA 32 25 57 NA NA
512 2 2 11 M Brownsville Barcelona 1 N 270 11 8 NA NA NA NA 0 62
513 2 2 11 F Brownsville Brownsville 1 N 261 10 23 NA 31 33 64 NA NA
514 2 2 11 M Brownsville Brownsville 1 N 294 12 8 NA NA NA NA 0 0
515 2 2 11 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
516 2 2 11 M Brownsville Dahomey 1 L 264 11 2 NA NA NA NA 0 18
517 2 2 11 F Israel Brownsville 1 N 249 10 11 NA 0 0 0 NA NA
518 2 2 11 M Brownsville Israel 1 N 271 11 9 NA NA NA NA 67 16
519 2 2 11 F Sweden Brownsville 1 N 306 12 20 NA 0 0 0 NA NA
520 2 2 11 M Brownsville Sweden 1 N NA NA NA NA NA NA NA 0 0
521 2 2 11 F Barcelona Dahomey 1 N 246 10 8 NA 35 39 74 NA NA
522 2 2 11 M Dahomey Barcelona 1 N 268 11 6 NA NA NA NA 32 0
523 2 2 11 F Brownsville Dahomey 1 N 268 11 6 NA 27 31 58 NA NA
524 2 2 11 M Dahomey Brownsville 1 N 263 10 1 NA NA NA NA 58 29
525 2 2 11 F Dahomey Dahomey 1 L 246 10 8 NA 0 0 0 NA NA
526 2 2 11 M Dahomey Dahomey 0 N NA NA NA NA NA NA NA 0 0
527 2 2 11 F Israel Dahomey 1 N 294 12 8 NA 0 0 0 NA NA
528 2 2 11 M Dahomey Israel 1 N 302 12 16 NA NA NA NA 12 82
529 2 2 11 F Sweden Dahomey 0 N NA NA NA NA 0 0 0 NA NA
530 2 2 11 M Dahomey Sweden 1 L 249 10 11 NA NA NA NA 81 0
531 2 2 11 F Barcelona Israel 1 N 249 10 11 NA 57 72 129 NA NA
532 2 2 11 M Israel Barcelona 1 N 267 11 5 NA NA NA NA 26 63
533 2 2 11 F Brownsville Israel 1 P 298 12 12 NA 0 0 0 NA NA
534 2 2 11 M Israel Brownsville 0 N NA NA NA NA NA NA NA 0 0
535 2 2 11 F Dahomey Israel 1 L 250 10 12 NA 27 33 60 NA NA
536 2 2 11 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
537 2 2 11 F Israel Israel 1 N 244 10 6 NA 33 40 73 NA NA
538 2 2 11 M Israel Israel 1 N 312 13 2 NA NA NA NA 57 34
539 2 2 11 F Sweden Israel 0 N NA NA NA NA 0 0 0 NA NA
540 2 2 11 M Israel Sweden 1 P 248 10 10 NA NA NA NA 54 26
541 2 2 11 F Barcelona Sweden 1 P 267 11 5 NA 18 20 38 NA NA
542 2 2 11 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
543 2 2 11 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
544 2 2 11 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
545 2 2 11 F Dahomey Sweden 1 P NA NA NA NA 0 0 0 NA NA
546 2 2 11 M Sweden Dahomey 0 N NA NA NA NA NA NA NA 0 0
547 2 2 11 F Israel Sweden 1 N NA NA NA NA 30 24 54 NA NA
548 2 2 11 M Sweden Israel 1 N NA NA NA NA NA NA NA 0 46
549 2 2 11 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
550 2 2 11 M Sweden Sweden 1 L 267 11 5 NA NA NA NA 0 0
551 2 2 12 F Barcelona Barcelona 1 L 275 11 13 NA 16 19 35 NA NA
552 2 2 12 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
553 2 2 12 F Brownsville Barcelona 1 N 294 12 8 NA 11 13 24 NA NA
554 2 2 12 M Barcelona Brownsville 1 N 267 11 5 NA NA NA NA 0 29
555 2 2 12 F Dahomey Barcelona 0 N NA NA NA NA 0 0 0 NA NA
556 2 2 12 M Barcelona Dahomey 1 L 265 11 3 NA NA NA NA 0 0
557 2 2 12 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
558 2 2 12 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
559 2 2 12 F Sweden Barcelona 0 L NA NA NA NA 0 0 0 NA NA
560 2 2 12 M Barcelona Sweden 0 L NA NA NA NA NA NA NA 0 0
561 2 2 12 F Barcelona Brownsville 1 N NA NA NA NA 29 28 57 NA NA
562 2 2 12 M Brownsville Barcelona 1 N 270 11 8 NA NA NA NA 0 0
563 2 2 12 F Brownsville Brownsville 1 N 246 10 8 NA 0 0 0 NA NA
564 2 2 12 M Brownsville Brownsville 1 N 266 11 4 NA NA NA NA 0 53
567 2 2 12 F Israel Brownsville 0 P NA NA NA NA 0 0 0 NA NA
568 2 2 12 M Brownsville Israel 0 P NA NA NA NA NA NA NA 0 0
569 2 2 12 F Sweden Brownsville 1 N 245 10 7 NA 0 0 0 NA NA
570 2 2 12 M Brownsville Sweden 1 N 288 12 2 NA NA NA NA 0 58
571 2 2 12 F Barcelona Dahomey 1 N 264 11 2 NA 21 23 44 NA NA
572 2 2 12 M Dahomey Barcelona 1 N 294 12 8 NA NA NA NA 0 0
581 2 2 12 F Barcelona Israel 1 N NA NA NA NA 0 0 0 NA NA
582 2 2 12 M Israel Barcelona 1 N NA NA NA NA NA NA NA 51 41
583 2 2 12 F Brownsville Israel 1 N NA NA NA NA 7 4 11 NA NA
584 2 2 12 M Israel Brownsville 1 N NA NA NA NA NA NA NA 45 1
591 2 2 12 F Barcelona Sweden 1 L 244 10 6 NA 55 45 100 NA NA
592 2 2 12 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
601 3 1 13 F Barcelona Barcelona 1 N 260 10 22 1.102 24 34 58 NA NA
602 3 1 13 M Barcelona Barcelona 1 N 258 10 20 1.009 NA NA NA 50 0
603 3 1 13 F Brownsville Barcelona 1 N 259 10 21 0.988 0 0 0 NA NA
604 3 1 13 M Barcelona Brownsville 1 N 268 11 6 NA NA NA NA 136 13
605 3 1 13 F Dahomey Barcelona 1 N 268 11 6 NA 0 0 0 NA NA
606 3 1 13 M Barcelona Dahomey 1 N 269 11 7 0.940 NA NA NA 0 26
607 3 1 13 F Israel Barcelona 0 P NA NA NA NA 0 0 0 NA NA
608 3 1 13 M Barcelona Israel 0 P NA NA NA NA NA NA NA 0 0
609 3 1 13 F Sweden Barcelona 1 N 267 11 5 0.981 17 15 32 NA NA
610 3 1 13 M Barcelona Sweden 1 N 260 10 22 0.820 NA NA NA 96 0
611 3 1 13 F Barcelona Brownsville 1 N 249 10 11 1.202 40 41 81 NA NA
612 3 1 13 M Brownsville Barcelona 1 N 250 10 12 NA NA NA NA 0 71
615 3 1 13 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
616 3 1 13 M Brownsville Dahomey 1 P 268 11 6 NA NA NA NA 0 0
617 3 1 13 F Israel Brownsville 1 N 283 11 21 0.969 6 6 12 NA NA
618 3 1 13 M Brownsville Israel 1 N 252 10 14 NA NA NA NA 0 25
619 3 1 13 F Sweden Brownsville 1 N 261 10 23 NA 0 0 0 NA NA
620 3 1 13 M Brownsville Sweden 1 N 261 10 23 0.936 NA NA NA 0 73
621 3 1 13 F Barcelona Dahomey 1 N 267 11 5 0.811 9 11 20 NA NA
622 3 1 13 M Dahomey Barcelona 1 N 264 11 2 NA NA NA NA 6 69
623 3 1 13 F Brownsville Dahomey 1 N 266 11 4 NA 19 17 36 NA NA
624 3 1 13 M Dahomey Brownsville 1 N 266 11 4 0.840 NA NA NA 45 1
625 3 1 13 F Dahomey Dahomey 1 N 246 10 8 1.264 40 31 71 NA NA
626 3 1 13 M Dahomey Dahomey 1 N 268 11 6 0.957 NA NA NA 0 120
627 3 1 13 F Israel Dahomey 1 N 265 11 3 NA 13 19 32 NA NA
628 3 1 13 M Dahomey Israel 1 N 273 11 11 NA NA NA NA 42 21
629 3 1 13 F Sweden Dahomey 1 N 246 10 8 1.179 13 12 25 NA NA
630 3 1 13 M Dahomey Sweden 1 N 245 10 7 1.102 NA NA NA 67 0
631 3 1 13 F Barcelona Israel 0 N NA NA NA NA 0 0 0 NA NA
632 3 1 13 M Israel Barcelona 1 P 248 10 10 1.179 NA NA NA 90 0
633 3 1 13 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
634 3 1 13 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
635 3 1 13 F Dahomey Israel 0 N NA NA NA NA 0 0 0 NA NA
636 3 1 13 M Israel Dahomey 1 P 252 10 14 1.014 NA NA NA 72 17
637 3 1 13 F Israel Israel 0 L NA NA NA NA 0 0 0 NA NA
638 3 1 13 M Israel Israel 0 L NA NA NA NA NA NA NA 0 0
639 3 1 13 F Sweden Israel 1 N NA NA NA 1.194 25 21 46 NA NA
640 3 1 13 M Israel Sweden 1 N NA NA NA NA NA NA NA 0 0
641 3 1 13 F Barcelona Sweden 1 N 258 10 20 NA 28 20 48 NA NA
642 3 1 13 M Sweden Barcelona 1 N 260 10 22 1.030 NA NA NA 140 0
643 3 1 13 F Brownsville Sweden 1 N 252 10 14 1.083 23 22 45 NA NA
644 3 1 13 M Sweden Brownsville 1 N 270 11 8 0.926 NA NA NA 0 103
645 3 1 13 F Dahomey Sweden 1 L 246 10 8 1.287 0 0 0 NA NA
646 3 1 13 M Sweden Dahomey 0 N NA NA NA NA NA NA NA 0 0
647 3 1 13 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
648 3 1 13 M Sweden Israel 1 P 246 10 8 1.139 NA NA NA 44 0
649 3 1 13 F Sweden Sweden 1 N 244 10 6 1.163 26 32 58 NA NA
650 3 1 13 M Sweden Sweden 1 N 287 12 1 0.951 NA NA NA 0 52
651 3 1 14 F Barcelona Barcelona 1 P 260 10 22 1.020 35 19 54 NA NA
652 3 1 14 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
653 3 1 14 F Brownsville Barcelona 1 P 256 10 18 1.142 29 29 58 NA NA
654 3 1 14 M Barcelona Brownsville 0 N NA NA NA NA NA NA NA 0 0
655 3 1 14 F Dahomey Barcelona 1 N 254 10 16 1.176 13 34 47 NA NA
656 3 1 14 M Barcelona Dahomey 1 N 264 11 2 0.982 NA NA NA 119 0
657 3 1 14 F Israel Barcelona 1 N 273 11 11 1.108 0 0 0 NA NA
658 3 1 14 M Barcelona Israel 1 N 267 11 5 1.033 NA NA NA 0 59
661 3 1 14 F Barcelona Brownsville 0 P NA NA NA NA 0 0 0 NA NA
662 3 1 14 M Brownsville Barcelona 0 P NA NA NA NA NA NA NA 0 0
663 3 1 14 F Brownsville Brownsville 1 N 265 11 3 1.039 5 4 9 NA NA
664 3 1 14 M Brownsville Brownsville 1 N 268 11 6 1.012 NA NA NA 0 72
665 3 1 14 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
666 3 1 14 M Brownsville Dahomey 1 P 250 10 12 1.050 NA NA NA 0 0
667 3 1 14 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
668 3 1 14 M Brownsville Israel 1 L 243 10 5 1.009 NA NA NA 0 32
669 3 1 14 F Sweden Brownsville 0 P NA NA NA NA 0 0 0 NA NA
670 3 1 14 M Brownsville Sweden 0 P NA NA NA NA NA NA NA 0 0
671 3 1 14 F Barcelona Dahomey 0 N NA NA NA NA 0 0 0 NA NA
672 3 1 14 M Dahomey Barcelona 1 P 273 11 11 NA NA NA NA 0 57
673 3 1 14 F Brownsville Dahomey 1 N 248 10 10 NA 27 24 51 NA NA
674 3 1 14 M Dahomey Brownsville 1 N 253 10 15 NA NA NA NA 0 0
675 3 1 14 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
676 3 1 14 M Dahomey Dahomey 1 P 273 11 11 0.964 NA NA NA 0 76
677 3 1 14 F Israel Dahomey 0 N NA NA NA NA 0 0 0 NA NA
678 3 1 14 M Dahomey Israel 1 P 266 11 4 1.030 NA NA NA 86 4
679 3 1 14 F Sweden Dahomey 1 N 248 10 10 NA 0 0 0 NA NA
680 3 1 14 M Dahomey Sweden 1 N 258 10 20 NA NA NA NA 0 48
681 3 1 14 F Barcelona Israel 0 N NA NA NA NA 0 0 0 NA NA
682 3 1 14 M Israel Barcelona 1 P 262 10 0 1.050 NA NA NA 83 5
683 3 1 14 F Brownsville Israel 1 N 261 10 23 1.084 22 23 45 NA NA
684 3 1 14 M Israel Brownsville 1 N 261 10 23 0.975 NA NA NA 69 0
685 3 1 14 F Dahomey Israel 1 N 259 10 21 1.155 0 0 0 NA NA
686 3 1 14 M Israel Dahomey 1 N 283 11 21 0.931 NA NA NA 0 40
687 3 1 14 F Israel Israel 1 N 269 11 7 NA 0 0 0 NA NA
688 3 1 14 M Israel Israel 1 N 276 11 14 1.060 NA NA NA 138 0
689 3 1 14 F Sweden Israel 1 N 271 11 9 1.038 14 15 29 NA NA
690 3 1 14 M Israel Sweden 1 N 274 11 12 1.032 NA NA NA 30 6
691 3 1 14 F Barcelona Sweden 0 N NA NA NA NA 0 0 0 NA NA
692 3 1 14 M Sweden Barcelona 1 P 266 11 4 1.035 NA NA NA 0 47
693 3 1 14 F Brownsville Sweden 1 N 259 10 21 1.106 36 24 60 NA NA
694 3 1 14 M Sweden Brownsville 1 N 253 10 15 1.054 NA NA NA 53 6
695 3 1 14 F Dahomey Sweden 1 N 270 11 8 NA 0 0 0 NA NA
696 3 1 14 M Sweden Dahomey 1 N 261 10 23 1.074 NA NA NA 0 37
697 3 1 14 F Israel Sweden 1 N 275 11 13 1.167 32 28 60 NA NA
698 3 1 14 M Sweden Israel 1 N 288 12 2 NA NA NA NA 0 0
699 3 1 14 F Sweden Sweden 1 N 249 10 11 1.111 30 26 56 NA NA
700 3 1 14 M Sweden Sweden 1 N 270 11 8 1.072 NA NA NA 85 17
701 3 1 15 F Barcelona Barcelona 1 P 262 10 0 NA NA NA NA NA NA
702 3 1 15 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
703 3 1 15 F Brownsville Barcelona 0 P NA NA NA NA 0 0 0 NA NA
704 3 1 15 M Barcelona Brownsville 0 P NA NA NA NA NA NA NA 0 0
705 3 1 15 F Dahomey Barcelona 1 N 247 10 9 1.113 15 14 29 NA NA
706 3 1 15 M Barcelona Dahomey 1 N 267 11 5 NA NA NA NA 0 0
707 3 1 15 F Israel Barcelona 1 N 258 10 20 1.210 29 18 47 NA NA
708 3 1 15 M Barcelona Israel 1 N 261 10 23 1.137 NA NA NA 50 0
709 3 1 15 F Sweden Barcelona 1 N 252 10 14 1.057 26 23 49 NA NA
710 3 1 15 M Barcelona Sweden 1 N 249 10 11 1.060 NA NA NA 71 13
711 3 1 15 F Barcelona Brownsville 1 N 267 11 5 1.074 38 35 73 NA NA
712 3 1 15 M Brownsville Barcelona 1 N 256 10 18 1.082 NA NA NA 0 87
713 3 1 15 F Brownsville Brownsville 1 L 268 11 6 NA NA NA NA NA NA
714 3 1 15 M Brownsville Brownsville 0 N NA NA NA NA NA NA NA 0 0
715 3 1 15 F Dahomey Brownsville 1 N 246 10 8 1.220 0 0 0 NA NA
716 3 1 15 M Brownsville Dahomey 1 N 249 10 11 1.094 NA NA NA 0 45
717 3 1 15 F Israel Brownsville 1 P 265 11 3 1.105 0 0 0 NA NA
718 3 1 15 M Brownsville Israel 0 N NA NA NA NA NA NA NA 0 0
719 3 1 15 F Sweden Brownsville 1 L 247 10 9 1.285 NA NA NA NA NA
720 3 1 15 M Brownsville Sweden 0 N NA NA NA NA NA NA NA 0 0
721 3 1 15 F Barcelona Dahomey 0 N NA NA NA NA 0 0 0 NA NA
722 3 1 15 M Dahomey Barcelona 1 P 258 10 20 1.071 NA NA NA 151 1
723 3 1 15 F Brownsville Dahomey 1 N 255 10 17 1.178 5 5 10 NA NA
724 3 1 15 M Dahomey Brownsville 1 N 254 10 16 1.087 NA NA NA 150 2
725 3 1 15 F Dahomey Dahomey 1 N 293 12 7 1.052 21 32 53 NA NA
726 3 1 15 M Dahomey Dahomey 1 N 270 11 8 NA NA NA NA 0 0
727 3 1 15 F Israel Dahomey 1 L 265 11 3 1.233 44 32 76 NA NA
728 3 1 15 M Dahomey Israel 0 N NA NA NA NA NA NA NA 0 0
729 3 1 15 F Sweden Dahomey 1 N 266 11 4 NA 20 14 34 NA NA
730 3 1 15 M Dahomey Sweden 1 N 247 10 9 1.060 NA NA NA 112 30
731 3 1 15 F Barcelona Israel 1 N 260 10 22 1.179 0 0 0 NA NA
732 3 1 15 M Israel Barcelona 1 N 264 11 2 1.038 NA NA NA 0 0
733 3 1 15 F Brownsville Israel 0 P NA NA NA NA 0 0 0 NA NA
734 3 1 15 M Israel Brownsville 0 P NA NA NA NA NA NA NA 0 0
735 3 1 15 F Dahomey Israel 1 P 262 10 0 1.106 26 25 51 NA NA
736 3 1 15 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
737 3 1 15 F Israel Israel 0 N NA NA NA NA 0 0 0 NA NA
738 3 1 15 M Israel Israel 1 P 256 10 18 1.134 NA NA NA 1 3
739 3 1 15 F Sweden Israel 1 L 259 10 21 1.214 8 18 26 NA NA
740 3 1 15 M Israel Sweden 0 N NA NA NA NA NA NA NA 0 0
741 3 1 15 F Barcelona Sweden 0 N NA NA NA NA 0 0 0 NA NA
742 3 1 15 M Sweden Barcelona 1 L 257 10 19 1.005 NA NA NA 73 36
743 3 1 15 F Brownsville Sweden 1 N 263 10 1 1.057 31 21 52 NA NA
744 3 1 15 M Sweden Brownsville 1 N 270 11 8 0.928 NA NA NA 0 11
745 3 1 15 F Dahomey Sweden 1 N 262 10 0 1.068 24 28 52 NA NA
746 3 1 15 M Sweden Dahomey 1 N 271 11 9 NA NA NA NA 0 0
747 3 1 15 F Israel Sweden 1 N 278 11 16 1.133 27 30 57 NA NA
748 3 1 15 M Sweden Israel 1 N 261 10 23 NA NA NA NA 59 109
749 3 1 15 F Sweden Sweden 1 P 268 11 6 1.140 38 31 69 NA NA
750 3 1 15 M Sweden Sweden 0 N NA NA NA NA NA NA NA 0 0
751 3 1 16 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
752 3 1 16 M Barcelona Barcelona 1 P 268 11 6 0.926 NA NA NA 0 19
753 3 1 16 F Brownsville Barcelona 1 L 243 10 5 1.369 0 0 0 NA NA
754 3 1 16 M Barcelona Brownsville 0 N NA NA NA NA NA NA NA 0 0
755 3 1 16 F Dahomey Barcelona 1 P 264 11 2 NA 0 0 0 NA NA
756 3 1 16 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
757 3 1 16 F Israel Barcelona 1 N 262 10 0 1.202 31 37 68 NA NA
758 3 1 16 M Barcelona Israel 1 N 285 11 23 1.016 NA NA NA 0 32
759 3 1 16 F Sweden Barcelona 1 N 253 10 15 NA 0 0 0 NA NA
760 3 1 16 M Barcelona Sweden 1 N 289 12 3 NA NA NA NA 0 0
761 3 1 16 F Barcelona Brownsville 1 L 259 10 21 1.303 47 53 100 NA NA
762 3 1 16 M Brownsville Barcelona 0 N NA NA NA NA NA NA NA 0 0
763 3 1 16 F Brownsville Brownsville 1 P 262 10 0 NA 24 11 35 NA NA
764 3 1 16 M Brownsville Brownsville 0 N NA NA NA NA NA NA NA 0 0
765 3 1 16 F Dahomey Brownsville 0 P NA NA NA NA 0 0 0 NA NA
766 3 1 16 M Brownsville Dahomey 0 P NA NA NA NA NA NA NA 0 0
767 3 1 16 F Israel Brownsville 1 N 273 11 11 1.174 0 0 0 NA NA
768 3 1 16 M Brownsville Israel 1 N 274 11 12 NA NA NA NA 0 0
769 3 1 16 F Sweden Brownsville 1 N NA NA NA 1.086 27 29 56 NA NA
770 3 1 16 M Brownsville Sweden 1 N NA NA NA 0.969 NA NA NA 0 11
771 3 1 16 F Barcelona Dahomey 0 N NA NA NA NA 0 0 0 NA NA
772 3 1 16 M Dahomey Barcelona 1 P 287 12 1 NA NA NA NA 0 65
773 3 1 16 F Brownsville Dahomey 1 P 262 10 0 1.166 37 27 64 NA NA
774 3 1 16 M Dahomey Brownsville 0 N NA NA NA NA NA NA NA 0 0
775 3 1 16 F Dahomey Dahomey 0 P NA NA NA NA 0 0 0 NA NA
776 3 1 16 M Dahomey Dahomey 0 P NA NA NA NA NA NA NA 0 0
777 3 1 16 F Israel Dahomey 0 P NA NA NA NA 0 0 0 NA NA
778 3 1 16 M Dahomey Israel 0 P NA NA NA NA NA NA NA 0 0
781 3 1 16 F Barcelona Israel 0 P NA NA NA NA 0 0 0 NA NA
782 3 1 16 M Israel Barcelona 0 P NA NA NA NA NA NA NA 0 0
783 3 1 16 F Brownsville Israel 1 N 255 10 17 1.190 0 0 0 NA NA
784 3 1 16 M Israel Brownsville 1 N 266 11 4 NA NA NA NA 0 63
785 3 1 16 F Dahomey Israel 1 P 260 10 22 1.134 26 31 57 NA NA
786 3 1 16 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
787 3 1 16 F Israel Israel 0 N NA NA NA NA 0 0 0 NA NA
788 3 1 16 M Israel Israel 1 P 262 10 0 1.116 NA NA NA 92 2
789 3 1 16 F Sweden Israel 0 N NA NA NA NA 0 0 0 NA NA
790 3 1 16 M Israel Sweden 1 P 273 11 11 NA NA NA NA 0 0
793 3 1 16 F Brownsville Sweden 1 L 262 10 0 1.183 13 0 13 NA NA
794 3 1 16 M Sweden Brownsville 0 N NA NA NA NA NA NA NA 0 0
795 3 1 16 F Dahomey Sweden 1 P 274 11 12 0.940 27 29 56 NA NA
796 3 1 16 M Sweden Dahomey 0 N NA NA NA NA NA NA NA 0 0
797 3 1 16 F Israel Sweden 0 P NA NA NA NA 0 0 0 NA NA
798 3 1 16 M Sweden Israel 0 P NA NA NA NA NA NA NA 0 0
799 3 1 16 F Sweden Sweden 0 P NA NA NA NA 0 0 0 NA NA
800 3 1 16 M Sweden Sweden 0 P NA NA NA NA NA NA NA 0 0
801 3 2 17 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
802 3 2 17 M Barcelona Barcelona 1 P 255 10 17 NA NA NA NA 0 0
803 3 2 17 F Brownsville Barcelona 1 N 244 10 6 1.108 23 20 43 NA NA
804 3 2 17 M Barcelona Brownsville 1 N 249 10 11 NA NA NA NA 0 0
805 3 2 17 F Dahomey Barcelona 1 L 265 11 3 1.024 26 29 55 NA NA
806 3 2 17 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
807 3 2 17 F Israel Barcelona 1 N 265 11 3 1.015 20 18 38 NA NA
808 3 2 17 M Barcelona Israel 1 N 264 11 2 0.955 NA NA NA 119 0
809 3 2 17 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
810 3 2 17 M Barcelona Sweden 1 P 266 11 4 0.956 NA NA NA 0 35
811 3 2 17 F Barcelona Brownsville 1 P 263 10 1 1.119 18 8 26 NA NA
812 3 2 17 M Brownsville Barcelona 0 N NA NA NA NA NA NA NA 0 0
813 3 2 17 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
814 3 2 17 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
815 3 2 17 F Dahomey Brownsville 1 P 245 10 7 1.143 31 32 63 NA NA
816 3 2 17 M Brownsville Dahomey 0 N NA NA NA NA NA NA NA 0 0
817 3 2 17 F Israel Brownsville 1 N 258 10 20 1.172 37 34 71 NA NA
818 3 2 17 M Brownsville Israel 1 N 269 11 7 1.025 NA NA NA 67 44
819 3 2 17 F Sweden Brownsville 1 N 262 10 0 1.183 20 20 40 NA NA
820 3 2 17 M Brownsville Sweden 1 N 261 10 23 1.006 NA NA NA 96 0
821 3 2 17 F Barcelona Dahomey 0 N NA NA NA NA 0 0 0 NA NA
822 3 2 17 M Dahomey Barcelona 1 P 257 10 19 NA NA NA NA 0 0
823 3 2 17 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
824 3 2 17 M Dahomey Brownsville 1 P 255 10 17 1.068 NA NA NA 32 2
825 3 2 17 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
826 3 2 17 M Dahomey Dahomey 1 L 263 10 1 NA NA NA NA 8 20
827 3 2 17 F Israel Dahomey 1 N 242 10 4 1.094 23 31 54 NA NA
828 3 2 17 M Dahomey Israel 1 N 262 10 0 NA NA NA NA 0 0
829 3 2 17 F Sweden Dahomey 1 N 272 11 10 NA 0 0 0 NA NA
830 3 2 17 M Dahomey Sweden 1 N 263 10 1 1.023 NA NA NA 121 2
831 3 2 17 F Barcelona Israel 1 N 276 11 14 1.123 27 31 58 NA NA
832 3 2 17 M Israel Barcelona 1 N 251 10 13 1.055 NA NA NA 83 68
833 3 2 17 F Brownsville Israel 1 N 285 11 23 1.013 12 30 42 NA NA
834 3 2 17 M Israel Brownsville 1 N 261 10 23 NA NA NA NA 58 0
835 3 2 17 F Dahomey Israel 1 L 271 11 9 1.137 27 23 50 NA NA
836 3 2 17 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
837 3 2 17 F Israel Israel 1 N NA NA NA NA 0 0 0 NA NA
838 3 2 17 M Israel Israel 1 N 259 10 21 0.977 NA NA NA 0 45
839 3 2 17 F Sweden Israel 1 N 267 11 5 1.022 12 23 35 NA NA
840 3 2 17 M Israel Sweden 1 N 258 10 20 1.017 NA NA NA 76 0
841 3 2 17 F Barcelona Sweden 1 N 257 10 19 NA 0 0 0 NA NA
842 3 2 17 M Sweden Barcelona 1 N 258 10 20 NA NA NA NA 119 0
843 3 2 17 F Brownsville Sweden 1 N 264 11 2 1.133 15 18 33 NA NA
844 3 2 17 M Sweden Brownsville 1 N NA NA NA 0.938 NA NA NA 0 40
845 3 2 17 F Dahomey Sweden 0 L NA NA NA NA 0 0 0 NA NA
846 3 2 17 M Sweden Dahomey 0 L NA NA NA NA NA NA NA 0 0
847 3 2 17 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
848 3 2 17 M Sweden Israel 1 L 283 11 21 0.875 NA NA NA 0 56
849 3 2 17 F Sweden Sweden 1 N 247 10 9 NA 0 0 0 NA NA
850 3 2 17 M Sweden Sweden 1 N NA NA NA NA NA NA NA 0 0
851 3 2 18 F Barcelona Barcelona 1 L 267 11 5 NA 37 20 57 NA NA
852 3 2 18 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
855 3 2 18 F Dahomey Barcelona 1 L 247 10 9 1.175 35 30 65 NA NA
856 3 2 18 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
857 3 2 18 F Israel Barcelona 0 N NA NA NA NA 0 0 0 NA NA
858 3 2 18 M Barcelona Israel 1 L 263 10 1 1.051 NA NA NA 93 15
859 3 2 18 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
860 3 2 18 M Barcelona Sweden 1 P 268 11 6 0.949 NA NA NA 0 115
861 3 2 18 F Barcelona Brownsville 0 N NA NA NA NA 0 0 0 NA NA
862 3 2 18 M Brownsville Barcelona 1 P 268 11 6 1.033 NA NA NA 0 94
863 3 2 18 F Brownsville Brownsville 1 P 249 10 11 NA 0 0 0 NA NA
864 3 2 18 M Brownsville Brownsville 0 N NA NA NA NA NA NA NA 0 0
865 3 2 18 F Dahomey Brownsville 1 N 250 10 12 NA 38 38 76 NA NA
866 3 2 18 M Brownsville Dahomey 1 N 263 10 1 NA NA NA NA 0 0
867 3 2 18 F Israel Brownsville 0 P NA NA NA NA 0 0 0 NA NA
868 3 2 18 M Brownsville Israel 0 P NA NA NA NA NA NA NA 0 0
869 3 2 18 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
870 3 2 18 M Brownsville Sweden 1 P 263 10 1 NA NA NA NA 0 0
871 3 2 18 F Barcelona Dahomey 0 N NA NA NA NA 0 0 0 NA NA
872 3 2 18 M Dahomey Barcelona 1 P 249 10 11 NA NA NA NA 0 0
873 3 2 18 F Brownsville Dahomey 0 P NA NA NA NA 0 0 0 NA NA
874 3 2 18 M Dahomey Brownsville 0 P NA NA NA NA NA NA NA 0 0
875 3 2 18 F Dahomey Dahomey 1 N 249 10 11 NA 0 0 0 NA NA
876 3 2 18 M Dahomey Dahomey 1 N 248 10 10 NA NA NA NA 0 0
877 3 2 18 F Israel Dahomey 1 N 264 11 2 NA 0 0 0 NA NA
878 3 2 18 M Dahomey Israel 1 N 257 10 19 NA NA NA NA 0 0
879 3 2 18 F Sweden Dahomey 0 P NA NA NA NA 0 0 0 NA NA
880 3 2 18 M Dahomey Sweden 0 P NA NA NA NA NA NA NA 0 0
881 3 2 18 F Barcelona Israel 1 N 252 10 14 NA 0 0 0 NA NA
882 3 2 18 M Israel Barcelona 1 N 248 10 10 NA NA NA NA 0 0
883 3 2 18 F Brownsville Israel 1 P 247 10 9 NA 0 0 0 NA NA
884 3 2 18 M Israel Brownsville 0 N NA NA NA NA NA NA NA 0 0
885 3 2 18 F Dahomey Israel 1 N 241 10 3 1.142 0 0 0 NA NA
886 3 2 18 M Israel Dahomey 1 N NA NA NA NA NA NA NA 0 56
887 3 2 18 F Israel Israel 1 N 247 10 9 NA 0 0 0 NA NA
888 3 2 18 M Israel Israel 1 N NA NA NA NA NA NA NA 0 0
889 3 2 18 F Sweden Israel 0 P NA NA NA NA 0 0 0 NA NA
890 3 2 18 M Israel Sweden 0 P NA NA NA NA NA NA NA 0 0
891 3 2 18 F Barcelona Sweden 1 N 263 10 1 1.052 29 26 55 NA NA
892 3 2 18 M Sweden Barcelona 1 N 263 10 1 1.004 NA NA NA 137 0
893 3 2 18 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
894 3 2 18 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
895 3 2 18 F Dahomey Sweden 1 P 264 11 2 NA 0 0 0 NA NA
896 3 2 18 M Sweden Dahomey 0 N NA NA NA NA NA NA NA 0 0
897 3 2 18 F Israel Sweden 1 N 255 10 17 NA 0 0 0 NA NA
898 3 2 18 M Sweden Israel 1 N 247 10 9 1.086 NA NA NA 95 12
899 3 2 18 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
900 3 2 18 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
901 3 2 19 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
902 3 2 19 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
903 3 2 19 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
904 3 2 19 M Barcelona Brownsville 1 P 287 12 1 0.913 NA NA NA 0 57
905 3 2 19 F Dahomey Barcelona 1 P 248 10 10 1.170 8 11 19 NA NA
906 3 2 19 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
907 3 2 19 F Israel Barcelona 1 N 261 10 23 1.252 51 42 93 NA NA
908 3 2 19 M Barcelona Israel 1 N 251 10 13 NA NA NA NA 92 7
909 3 2 19 F Sweden Barcelona 0 P NA NA NA NA 0 0 0 NA NA
910 3 2 19 M Barcelona Sweden 0 P NA NA NA NA NA NA NA 0 0
911 3 2 19 F Barcelona Brownsville 0 N NA NA NA NA 0 0 0 NA NA
912 3 2 19 M Brownsville Barcelona 1 P 260 10 22 1.056 NA NA NA 67 11
913 3 2 19 F Brownsville Brownsville 0 P NA NA NA NA 0 0 0 NA NA
914 3 2 19 M Brownsville Brownsville 0 P NA NA NA NA NA NA NA 0 0
915 3 2 19 F Dahomey Brownsville 1 P NA NA NA 1.023 6 11 17 NA NA
916 3 2 19 M Brownsville Dahomey 0 N NA NA NA NA NA NA NA 0 0
917 3 2 19 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
918 3 2 19 M Brownsville Israel 1 P 267 11 5 1.110 NA NA NA 50 18
919 3 2 19 F Sweden Brownsville 1 P 290 12 4 0.979 22 16 38 NA NA
920 3 2 19 M Brownsville Sweden 0 N NA NA NA NA NA NA NA 0 0
921 3 2 19 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
922 3 2 19 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
923 3 2 19 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
924 3 2 19 M Dahomey Brownsville 1 P 265 11 3 1.088 NA NA NA 0 21
925 3 2 19 F Dahomey Dahomey 0 P NA NA NA NA 0 0 0 NA NA
926 3 2 19 M Dahomey Dahomey 0 P NA NA NA NA NA NA NA 0 0
927 3 2 19 F Israel Dahomey 1 N 290 12 4 0.955 37 23 60 NA NA
928 3 2 19 M Dahomey Israel 1 N 256 10 18 1.051 NA NA NA 15 18
929 3 2 19 F Sweden Dahomey 0 N NA NA NA NA 0 0 0 NA NA
930 3 2 19 M Dahomey Sweden 1 P 259 10 21 NA NA NA NA 2 25
931 3 2 19 F Barcelona Israel 0 N NA NA NA NA 0 0 0 NA NA
932 3 2 19 M Israel Barcelona 1 P 251 10 13 0.964 NA NA NA 69 0
933 3 2 19 F Brownsville Israel 1 N 267 11 5 1.126 29 27 56 NA NA
934 3 2 19 M Israel Brownsville 1 N 285 11 23 1.005 NA NA NA 0 28
935 3 2 19 F Dahomey Israel 0 P NA NA NA NA 0 0 0 NA NA
936 3 2 19 M Israel Dahomey 0 P NA NA NA NA NA NA NA 0 0
937 3 2 19 F Israel Israel 0 N NA NA NA NA 0 0 0 NA NA
938 3 2 19 M Israel Israel 1 P 255 10 17 1.122 NA NA NA 83 29
939 3 2 19 F Sweden Israel 1 P 262 10 0 0.991 17 21 38 NA NA
940 3 2 19 M Israel Sweden 0 N NA NA NA NA NA NA NA 0 0
941 3 2 19 F Barcelona Sweden 1 L 262 10 0 1.204 31 39 70 NA NA
942 3 2 19 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
943 3 2 19 F Brownsville Sweden 0 N NA NA NA NA 0 0 0 NA NA
944 3 2 19 M Sweden Brownsville 1 P 281 11 19 0.983 NA NA NA 0 24
945 3 2 19 F Dahomey Sweden 1 P 260 10 22 1.133 9 14 23 NA NA
946 3 2 19 M Sweden Dahomey 0 N NA NA NA NA NA NA NA 0 0
947 3 2 19 F Israel Sweden 1 P 256 10 18 1.217 29 38 67 NA NA
948 3 2 19 M Sweden Israel 0 N NA NA NA NA NA NA NA 0 0
951 3 2 20 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
952 3 2 20 M Barcelona Barcelona 1 P 283 11 21 NA NA NA NA 0 24
961 3 2 20 F Barcelona Brownsville 1 N 268 11 6 1.019 0 0 0 NA NA
962 3 2 20 M Brownsville Barcelona 1 N 262 10 0 0.965 NA NA NA 0 33
963 3 2 20 F Brownsville Brownsville 1 N 284 11 22 NA 21 24 45 NA NA
964 3 2 20 M Brownsville Brownsville 1 N 250 10 12 1.086 NA NA NA 48 10
965 3 2 20 F Dahomey Brownsville 1 P 270 11 8 0.986 23 35 58 NA NA
966 3 2 20 M Brownsville Dahomey 0 N NA NA NA NA NA NA NA 0 0
967 3 2 20 F Israel Brownsville 0 P NA NA NA NA 0 0 0 NA NA
968 3 2 20 M Brownsville Israel 0 P NA NA NA NA NA NA NA 0 0
969 3 2 20 F Sweden Brownsville 1 P 249 10 11 NA 0 0 0 NA NA
970 3 2 20 M Brownsville Sweden 0 N NA NA NA NA NA NA NA 0 0
971 3 2 20 F Barcelona Dahomey 0 P NA NA NA NA 0 0 0 NA NA
972 3 2 20 M Dahomey Barcelona 0 P NA NA NA NA NA NA NA 0 0
973 3 2 20 F Brownsville Dahomey 1 N 266 11 4 1.133 0 0 0 NA NA
974 3 2 20 M Dahomey Brownsville 1 N 248 10 10 NA NA NA NA 0 0
975 3 2 20 F Dahomey Dahomey 1 N 264 11 2 1.075 10 11 21 NA NA
976 3 2 20 M Dahomey Dahomey 1 N 265 11 3 0.992 NA NA NA 0 12
977 3 2 20 F Israel Dahomey 1 N NA NA NA NA 0 0 0 NA NA
978 3 2 20 M Dahomey Israel 1 N NA NA NA 1.041 NA NA NA 89 18
979 3 2 20 F Sweden Dahomey 0 P NA NA NA NA 0 0 0 NA NA
980 3 2 20 M Dahomey Sweden 0 P NA NA NA NA NA NA NA 0 0
981 3 2 20 F Barcelona Israel 1 N NA NA NA NA NA NA NA NA NA
982 3 2 20 M Israel Barcelona 1 N NA NA NA 0.883 NA NA NA 0 42
983 3 2 20 F Brownsville Israel 0 N NA NA NA NA 0 0 0 NA NA
984 3 2 20 M Israel Brownsville 1 P 297 12 11 NA NA NA NA 0 0
985 3 2 20 F Dahomey Israel 0 N NA NA NA NA 0 0 0 NA NA
986 3 2 20 M Israel Dahomey 1 L 264 11 2 NA NA NA NA 107 0
987 3 2 20 F Israel Israel 1 N 272 11 10 1.110 26 23 49 NA NA
988 3 2 20 M Israel Israel 1 N 268 11 6 0.999 NA NA NA 47 1
989 3 2 20 F Sweden Israel 1 L 261 10 23 1.190 34 35 69 NA NA
990 3 2 20 M Israel Sweden 0 N NA NA NA NA NA NA NA 0 0
1001 4 1 21 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1002 4 1 21 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
1003 4 1 21 F Brownsville Barcelona 0 P NA NA NA NA 0 0 0 NA NA
1004 4 1 21 M Barcelona Brownsville 0 P NA NA NA NA NA NA NA 0 0
1005 4 1 21 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1006 4 1 21 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1007 4 1 21 F Israel Barcelona 0 P NA NA NA NA 0 0 0 NA NA
1008 4 1 21 M Barcelona Israel 0 P NA NA NA NA NA NA NA 0 0
1009 4 1 21 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1010 4 1 21 M Barcelona Sweden 1 P 247 10 9 0.939 NA NA NA 0 49
1011 4 1 21 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1012 4 1 21 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
1013 4 1 21 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1014 4 1 21 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1015 4 1 21 F Dahomey Brownsville 0 P NA NA NA NA 0 0 0 NA NA
1016 4 1 21 M Brownsville Dahomey 0 P NA NA NA NA NA NA NA 0 0
1017 4 1 21 F Israel Brownsville 0 P NA NA NA NA 0 0 0 NA NA
1018 4 1 21 M Brownsville Israel 0 P NA NA NA NA NA NA NA 0 0
1019 4 1 21 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1020 4 1 21 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
1021 4 1 21 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1022 4 1 21 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
1023 4 1 21 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1024 4 1 21 M Dahomey Brownsville 1 P 246 10 8 0.879 NA NA NA 0 6
1025 4 1 21 F Dahomey Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1026 4 1 21 M Dahomey Dahomey 0 L NA NA NA NA NA NA NA 0 0
1027 4 1 21 F Israel Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1028 4 1 21 M Dahomey Israel 0 P NA NA NA NA NA NA NA 0 0
1029 4 1 21 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1030 4 1 21 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
1031 4 1 21 F Barcelona Israel 1 N 246 10 8 1.001 13 13 26 NA NA
1032 4 1 21 M Israel Barcelona 1 N 248 10 10 NA NA NA NA 0 0
1033 4 1 21 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1034 4 1 21 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1035 4 1 21 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1036 4 1 21 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1037 4 1 21 F Israel Israel 1 P 246 10 8 NA 0 0 0 NA NA
1038 4 1 21 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
1039 4 1 21 F Sweden Israel 0 N NA NA NA NA 0 0 0 NA NA
1040 4 1 21 M Israel Sweden 1 L NA NA NA 1.059 NA NA NA 90 3
1041 4 1 21 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
1042 4 1 21 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
1043 4 1 21 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
1044 4 1 21 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
1045 4 1 21 F Dahomey Sweden 0 P NA NA NA NA 0 0 0 NA NA
1046 4 1 21 M Sweden Dahomey 0 P NA NA NA NA NA NA NA 0 0
1047 4 1 21 F Israel Sweden 1 L 247 10 9 NA 25 22 47 NA NA
1048 4 1 21 M Sweden Israel 0 N NA NA NA NA NA NA NA 0 0
1049 4 1 21 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1050 4 1 21 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1051 4 1 22 F Barcelona Barcelona 0 P NA NA NA NA 0 0 0 NA NA
1052 4 1 22 M Barcelona Barcelona 0 P NA NA NA NA NA NA NA 0 0
1053 4 1 22 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1054 4 1 22 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
1055 4 1 22 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1056 4 1 22 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1057 4 1 22 F Israel Barcelona 0 P NA NA NA NA 0 0 0 NA NA
1058 4 1 22 M Barcelona Israel 0 P NA NA NA NA NA NA NA 0 0
1059 4 1 22 F Sweden Barcelona 1 N 271 11 9 NA 0 0 0 NA NA
1060 4 1 22 M Barcelona Sweden 1 N 271 11 9 NA NA NA NA 0 0
1063 4 1 22 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1064 4 1 22 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1065 4 1 22 F Dahomey Brownsville 0 P NA NA NA NA 0 0 0 NA NA
1066 4 1 22 M Brownsville Dahomey 0 P NA NA NA NA NA NA NA 0 0
1067 4 1 22 F Israel Brownsville 1 L 244 10 6 NA 0 0 0 NA NA
1068 4 1 22 M Brownsville Israel 0 N NA NA NA NA NA NA NA 0 0
1069 4 1 22 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1070 4 1 22 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
1071 4 1 22 F Barcelona Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1072 4 1 22 M Dahomey Barcelona 0 P NA NA NA NA NA NA NA 0 0
1073 4 1 22 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1074 4 1 22 M Dahomey Brownsville 1 L 244 10 6 1.130 NA NA NA NA NA
1075 4 1 22 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1076 4 1 22 M Dahomey Dahomey 1 P 240 10 2 1.055 NA NA NA 22 18
1077 4 1 22 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1078 4 1 22 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
1079 4 1 22 F Sweden Dahomey 1 L NA NA NA 0.870 21 14 35 NA NA
1080 4 1 22 M Dahomey Sweden 0 N NA NA NA NA NA NA NA 0 0
1081 4 1 22 F Barcelona Israel 0 P NA NA NA NA 0 0 0 NA NA
1082 4 1 22 M Israel Barcelona 0 P NA NA NA NA NA NA NA 0 0
1083 4 1 22 F Brownsville Israel 0 P NA NA NA NA 0 0 0 NA NA
1084 4 1 22 M Israel Brownsville 0 P NA NA NA NA NA NA NA 0 0
1085 4 1 22 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1086 4 1 22 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1087 4 1 22 F Israel Israel 0 L NA NA NA NA 0 0 0 NA NA
1088 4 1 22 M Israel Israel 0 L NA NA NA NA NA NA NA 0 0
1089 4 1 22 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
1090 4 1 22 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
1093 4 1 22 F Brownsville Sweden 1 N 253 10 15 0.982 20 22 42 NA NA
1094 4 1 22 M Sweden Brownsville 1 N 263 10 1 0.897 NA NA NA 0 43
1095 4 1 22 F Dahomey Sweden 1 L 263 10 1 1.042 23 31 54 NA NA
1096 4 1 22 M Sweden Dahomey 0 N NA NA NA NA NA NA NA 0 0
1097 4 1 22 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
1098 4 1 22 M Sweden Israel 1 P 264 11 2 0.890 NA NA NA NA NA
1099 4 1 22 F Sweden Sweden 0 P NA NA NA NA 0 0 0 NA NA
1100 4 1 22 M Sweden Sweden 0 P NA NA NA NA NA NA NA 0 0
1101 4 1 23 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1102 4 1 23 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
1103 4 1 23 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1104 4 1 23 M Barcelona Brownsville 1 P 247 10 9 NA NA NA NA 0 0
1105 4 1 23 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1106 4 1 23 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1107 4 1 23 F Israel Barcelona 0 P NA NA NA NA 0 0 0 NA NA
1108 4 1 23 M Barcelona Israel 0 P NA NA NA NA NA NA NA 0 0
1109 4 1 23 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1110 4 1 23 M Barcelona Sweden 1 P 264 11 2 0.882 NA NA NA 0 32
1111 4 1 23 F Barcelona Brownsville 0 P NA NA NA NA 0 0 0 NA NA
1112 4 1 23 M Brownsville Barcelona 0 P NA NA NA NA NA NA NA 0 0
1113 4 1 23 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1114 4 1 23 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1115 4 1 23 F Dahomey Brownsville 1 N 244 10 6 NA 0 0 0 NA NA
1116 4 1 23 M Brownsville Dahomey 1 N NA NA NA NA NA NA NA 0 0
1117 4 1 23 F Israel Brownsville 1 L NA NA NA 1.125 32 25 57 NA NA
1118 4 1 23 M Brownsville Israel 0 N NA NA NA NA NA NA NA 0 0
1119 4 1 23 F Sweden Brownsville 0 P NA NA NA NA 0 0 0 NA NA
1120 4 1 23 M Brownsville Sweden 0 P NA NA NA NA NA NA NA 0 0
1121 4 1 23 F Barcelona Dahomey 1 L 263 10 1 0.955 21 26 47 NA NA
1122 4 1 23 M Dahomey Barcelona 0 N NA NA NA NA NA NA NA 0 0
1123 4 1 23 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1124 4 1 23 M Dahomey Brownsville 1 P 244 10 6 NA NA NA NA 0 30
1125 4 1 23 F Dahomey Dahomey 1 P 253 10 15 1.062 19 24 43 NA NA
1126 4 1 23 M Dahomey Dahomey 0 N NA NA NA NA NA NA NA 0 0
1127 4 1 23 F Israel Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1128 4 1 23 M Dahomey Israel 0 P NA NA NA NA NA NA NA 0 0
1129 4 1 23 F Sweden Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1130 4 1 23 M Dahomey Sweden 1 P 290 12 4 NA NA NA NA 0 41
1131 4 1 23 F Barcelona Israel 1 N NA NA NA NA 0 0 0 NA NA
1132 4 1 23 M Israel Barcelona 1 N NA NA NA 0.903 NA NA NA 0 80
1133 4 1 23 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1134 4 1 23 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1135 4 1 23 F Dahomey Israel 1 L 245 10 7 1.121 44 35 79 NA NA
1136 4 1 23 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
1137 4 1 23 F Israel Israel 1 N 268 11 6 0.978 0 0 0 NA NA
1138 4 1 23 M Israel Israel 1 N 265 11 3 0.880 NA NA NA 0 84
1139 4 1 23 F Sweden Israel 1 N 264 11 2 0.975 14 21 35 NA NA
1140 4 1 23 M Israel Sweden 1 N 252 10 14 0.933 NA NA NA 21 61
1141 4 1 23 F Barcelona Sweden 1 N 267 11 5 1.044 35 34 69 NA NA
1142 4 1 23 M Sweden Barcelona 1 N 247 10 9 1.002 NA NA NA 125 0
1143 4 1 23 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
1144 4 1 23 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
1145 4 1 23 F Dahomey Sweden 1 N 249 10 11 0.895 0 0 0 NA NA
1146 4 1 23 M Sweden Dahomey 1 N 247 10 9 NA NA NA NA 0 0
1147 4 1 23 F Israel Sweden 1 P 248 10 10 NA 0 0 0 NA NA
1148 4 1 23 M Sweden Israel 0 N NA NA NA NA NA NA NA 0 0
1149 4 1 23 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
1150 4 1 23 M Sweden Sweden 1 P 250 10 12 0.913 NA NA NA 0 0
1151 4 1 24 F Barcelona Barcelona 0 P NA NA NA NA 0 0 0 NA NA
1152 4 1 24 M Barcelona Barcelona 0 P NA NA NA NA NA NA NA 0 0
1153 4 1 24 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1154 4 1 24 M Barcelona Brownsville 1 L NA NA NA 1.159 NA NA NA 0 58
1155 4 1 24 F Dahomey Barcelona 1 P 270 11 8 NA 0 0 0 NA NA
1156 4 1 24 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
1157 4 1 24 F Israel Barcelona 1 P NA NA NA 1.042 21 14 35 NA NA
1158 4 1 24 M Barcelona Israel 0 N NA NA NA NA NA NA NA 0 0
1159 4 1 24 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1160 4 1 24 M Barcelona Sweden 1 L 299 12 13 NA NA NA NA NA NA
1161 4 1 24 F Barcelona Brownsville 1 P NA NA NA NA 20 21 41 NA NA
1162 4 1 24 M Brownsville Barcelona 0 N NA NA NA NA NA NA NA 0 0
1163 4 1 24 F Brownsville Brownsville 1 L NA NA NA 1.014 19 7 26 NA NA
1164 4 1 24 M Brownsville Brownsville 0 N NA NA NA NA NA NA NA 0 0
1171 4 1 24 F Barcelona Dahomey 1 P 245 10 7 1.084 26 33 59 NA NA
1172 4 1 24 M Dahomey Barcelona 0 N NA NA NA NA NA NA NA 0 0
1173 4 1 24 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1174 4 1 24 M Dahomey Brownsville 1 L NA NA NA 0.995 NA NA NA 23 1
1175 4 1 24 F Dahomey Dahomey 1 N NA NA NA 1.130 26 25 51 NA NA
1176 4 1 24 M Dahomey Dahomey 1 N 264 11 2 NA NA NA NA 0 40
1177 4 1 24 F Israel Dahomey 1 P 250 10 12 1.053 22 24 46 NA NA
1178 4 1 24 M Dahomey Israel 0 N NA NA NA NA NA NA NA 0 0
1179 4 1 24 F Sweden Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1180 4 1 24 M Dahomey Sweden 0 P NA NA NA NA NA NA NA 0 0
1181 4 1 24 F Barcelona Israel 1 P 296 12 10 0.909 0 0 0 NA NA
1182 4 1 24 M Israel Barcelona 0 N NA NA NA NA NA NA NA 0 0
1183 4 1 24 F Brownsville Israel 0 N NA NA NA NA 0 0 0 NA NA
1184 4 1 24 M Israel Brownsville 1 L 249 10 11 1.007 NA NA NA 0 64
1185 4 1 24 F Dahomey Israel 1 P 276 11 14 0.992 17 17 34 NA NA
1186 4 1 24 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
1187 4 1 24 F Israel Israel 1 P 252 10 14 0.975 20 24 44 NA NA
1188 4 1 24 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
1189 4 1 24 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
1190 4 1 24 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
1191 4 1 24 F Barcelona Sweden 1 N 263 10 1 NA 0 0 0 NA NA
1192 4 1 24 M Sweden Barcelona 1 N 263 10 1 NA NA NA NA 0 0
1193 4 1 24 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
1194 4 1 24 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
1195 4 1 24 F Dahomey Sweden 1 N 251 10 13 1.076 22 25 47 NA NA
1196 4 1 24 M Sweden Dahomey 1 N 268 11 6 0.878 NA NA NA 0 68
1197 4 1 24 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
1198 4 1 24 M Sweden Israel 1 P 266 11 4 0.922 NA NA NA 0 18
1199 4 1 24 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1200 4 1 24 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1201 4 2 25 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1202 4 2 25 M Barcelona Barcelona 1 P 251 10 13 0.918 NA NA NA 75 42
1203 4 2 25 F Brownsville Barcelona 1 N 264 11 2 1.016 25 18 43 NA NA
1204 4 2 25 M Barcelona Brownsville 1 N 252 10 14 NA NA NA NA 0 61
1205 4 2 25 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1206 4 2 25 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1207 4 2 25 F Israel Barcelona 1 L 247 10 9 NA 13 13 26 NA NA
1208 4 2 25 M Barcelona Israel 0 N NA NA NA NA NA NA NA 0 0
1209 4 2 25 F Sweden Barcelona 1 P NA NA NA 0.904 16 16 32 NA NA
1210 4 2 25 M Barcelona Sweden 0 N NA NA NA NA NA NA NA 0 0
1211 4 2 25 F Barcelona Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1212 4 2 25 M Brownsville Barcelona 1 L NA NA NA 0.900 NA NA NA 0 82
1213 4 2 25 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1214 4 2 25 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1215 4 2 25 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1216 4 2 25 M Brownsville Dahomey 1 P 269 11 7 0.896 NA NA NA 0 84
1217 4 2 25 F Israel Brownsville 1 N 274 11 12 NA 27 23 50 NA NA
1218 4 2 25 M Brownsville Israel 1 N 265 11 3 0.931 NA NA NA 0 61
1219 4 2 25 F Sweden Brownsville 1 P NA NA NA 1.073 0 0 0 NA NA
1220 4 2 25 M Brownsville Sweden 0 N NA NA NA NA NA NA NA 0 0
1221 4 2 25 F Barcelona Dahomey 1 L 252 10 14 1.014 0 0 0 NA NA
1222 4 2 25 M Dahomey Barcelona 0 N NA NA NA NA NA NA NA 0 0
1223 4 2 25 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1224 4 2 25 M Dahomey Brownsville 1 L 246 10 8 1.004 NA NA NA 0 89
1225 4 2 25 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1226 4 2 25 M Dahomey Dahomey 1 P 244 10 6 1.037 NA NA NA 104 31
1227 4 2 25 F Israel Dahomey 1 L 246 10 8 1.060 23 15 38 NA NA
1228 4 2 25 M Dahomey Israel 0 N NA NA NA NA NA NA NA 0 0
1229 4 2 25 F Sweden Dahomey 1 L 269 11 7 1.042 29 29 58 NA NA
1230 4 2 25 M Dahomey Sweden 0 N NA NA NA NA NA NA NA 0 0
1231 4 2 25 F Barcelona Israel 1 N 247 10 9 NA 0 0 0 NA NA
1232 4 2 25 M Israel Barcelona 1 N 244 10 6 1.007 NA NA NA 0 68
1233 4 2 25 F Brownsville Israel 1 P 245 10 7 1.045 20 25 45 NA NA
1234 4 2 25 M Israel Brownsville 0 N NA NA NA NA NA NA NA 0 0
1235 4 2 25 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1236 4 2 25 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1237 4 2 25 F Israel Israel 0 P NA NA NA NA 0 0 0 NA NA
1238 4 2 25 M Israel Israel 0 P NA NA NA NA NA NA NA 0 0
1239 4 2 25 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
1240 4 2 25 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
1243 4 2 25 F Brownsville Sweden 0 N NA NA NA NA 0 0 0 NA NA
1244 4 2 25 M Sweden Brownsville 1 L 245 10 7 1.080 NA NA NA 149 0
1245 4 2 25 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
1246 4 2 25 M Sweden Dahomey 1 P 244 10 6 1.021 NA NA NA 125 0
1247 4 2 25 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
1248 4 2 25 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
1249 4 2 25 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1250 4 2 25 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1251 4 2 26 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1252 4 2 26 M Barcelona Barcelona 1 L 247 10 9 1.073 NA NA NA 161 1
1253 4 2 26 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1254 4 2 26 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
1255 4 2 26 F Dahomey Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1256 4 2 26 M Barcelona Dahomey 1 P 264 11 2 NA NA NA NA 0 0
1257 4 2 26 F Israel Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1258 4 2 26 M Barcelona Israel 1 L 248 10 10 1.031 NA NA NA 0 30
1259 4 2 26 F Sweden Barcelona 0 P NA NA NA NA 0 0 0 NA NA
1260 4 2 26 M Barcelona Sweden 0 P NA NA NA NA NA NA NA 0 0
1261 4 2 26 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1262 4 2 26 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
1263 4 2 26 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1264 4 2 26 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1265 4 2 26 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1266 4 2 26 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
1267 4 2 26 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1268 4 2 26 M Brownsville Israel 1 L 248 10 10 NA NA NA NA 0 5
1269 4 2 26 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1270 4 2 26 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
1271 4 2 26 F Barcelona Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1272 4 2 26 M Dahomey Barcelona 0 P NA NA NA NA NA NA NA 0 0
1273 4 2 26 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1274 4 2 26 M Dahomey Brownsville 1 P NA NA NA 0.878 NA NA NA 0 83
1275 4 2 26 F Dahomey Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1276 4 2 26 M Dahomey Dahomey 0 P NA NA NA NA NA NA NA 0 0
1277 4 2 26 F Israel Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1278 4 2 26 M Dahomey Israel 0 P NA NA NA NA NA NA NA 0 0
1279 4 2 26 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1280 4 2 26 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
1281 4 2 26 F Barcelona Israel 0 P NA NA NA NA 0 0 0 NA NA
1282 4 2 26 M Israel Barcelona 0 P NA NA NA NA NA NA NA 0 0
1283 4 2 26 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1284 4 2 26 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1285 4 2 26 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1286 4 2 26 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1287 4 2 26 F Israel Israel 1 N NA NA NA 1.045 34 24 58 NA NA
1288 4 2 26 M Israel Israel 1 N 246 10 8 NA NA NA NA 0 0
1289 4 2 26 F Sweden Israel 0 P NA NA NA NA 0 0 0 NA NA
1290 4 2 26 M Israel Sweden 0 P NA NA NA NA NA NA NA 0 0
1291 4 2 26 F Barcelona Sweden 0 N NA NA NA NA 0 0 0 NA NA
1292 4 2 26 M Sweden Barcelona 1 L 266 11 4 1.047 NA NA NA 75 7
1295 4 2 26 F Dahomey Sweden 0 P NA NA NA NA 0 0 0 NA NA
1296 4 2 26 M Sweden Dahomey 0 P NA NA NA NA NA NA NA 0 0
1297 4 2 26 F Israel Sweden 1 L 249 10 11 1.024 23 25 48 NA NA
1298 4 2 26 M Sweden Israel 0 N NA NA NA NA NA NA NA 0 0
1299 4 2 26 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1300 4 2 26 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1301 4 2 27 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1302 4 2 27 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
1303 4 2 27 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1304 4 2 27 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
1305 4 2 27 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1306 4 2 27 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1307 4 2 27 F Israel Barcelona 0 P NA NA NA NA 0 0 0 NA NA
1308 4 2 27 M Barcelona Israel 0 P NA NA NA NA NA NA NA 0 0
1309 4 2 27 F Sweden Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1310 4 2 27 M Barcelona Sweden 0 L NA NA NA NA NA NA NA 0 0
1311 4 2 27 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1312 4 2 27 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
1313 4 2 27 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1314 4 2 27 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1315 4 2 27 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1316 4 2 27 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
1317 4 2 27 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1318 4 2 27 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
1319 4 2 27 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1320 4 2 27 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
1321 4 2 27 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1322 4 2 27 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
1323 4 2 27 F Brownsville Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1324 4 2 27 M Dahomey Brownsville 0 L NA NA NA NA NA NA NA 0 0
1325 4 2 27 F Dahomey Dahomey 1 P 263 10 1 0.967 20 21 41 NA NA
1326 4 2 27 M Dahomey Dahomey 0 N NA NA NA NA NA NA NA 0 0
1327 4 2 27 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1328 4 2 27 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
1329 4 2 27 F Sweden Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1330 4 2 27 M Dahomey Sweden 0 P NA NA NA NA NA NA NA 0 0
1331 4 2 27 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
1332 4 2 27 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
1333 4 2 27 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1334 4 2 27 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1335 4 2 27 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1336 4 2 27 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1337 4 2 27 F Israel Israel 1 P 250 10 12 1.038 24 16 40 NA NA
1338 4 2 27 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
1339 4 2 27 F Sweden Israel 1 L 268 11 6 NA 0 0 0 NA NA
1340 4 2 27 M Israel Sweden 0 N NA NA NA NA NA NA NA 0 0
1341 4 2 27 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
1342 4 2 27 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
1343 4 2 27 F Brownsville Sweden 1 N NA NA NA NA 0 0 0 NA NA
1344 4 2 27 M Sweden Brownsville 1 N NA NA NA NA NA NA NA NA NA
1345 4 2 27 F Dahomey Sweden 0 L NA NA NA NA 0 0 0 NA NA
1346 4 2 27 M Sweden Dahomey 0 L NA NA NA NA NA NA NA 0 0
1347 4 2 27 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
1348 4 2 27 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
1349 4 2 27 F Sweden Sweden 0 P NA NA NA NA 0 0 0 NA NA
1350 4 2 27 M Sweden Sweden 0 P NA NA NA NA NA NA NA 0 0
1351 4 2 28 F Barcelona Barcelona 1 L 250 10 12 NA 0 0 0 NA NA
1352 4 2 28 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
1353 4 2 28 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1354 4 2 28 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
1355 4 2 28 F Dahomey Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1356 4 2 28 M Barcelona Dahomey 1 P 250 10 12 1.077 NA NA NA 103 0
1357 4 2 28 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1358 4 2 28 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
1359 4 2 28 F Sweden Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1360 4 2 28 M Barcelona Sweden 0 L NA NA NA NA NA NA NA 0 0
1361 4 2 28 F Barcelona Brownsville 1 L 264 11 2 0.963 11 6 17 NA NA
1362 4 2 28 M Brownsville Barcelona 0 N NA NA NA NA NA NA NA 0 0
1363 4 2 28 F Brownsville Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1364 4 2 28 M Brownsville Brownsville 1 L 265 11 3 0.841 NA NA NA 0 0
1365 4 2 28 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1366 4 2 28 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
1367 4 2 28 F Israel Brownsville 0 P NA NA NA NA 0 0 0 NA NA
1368 4 2 28 M Brownsville Israel 0 P NA NA NA NA NA NA NA 0 0
1369 4 2 28 F Sweden Brownsville 1 L NA NA NA 1.005 4 3 7 NA NA
1370 4 2 28 M Brownsville Sweden 0 N NA NA NA NA NA NA NA 0 0
1371 4 2 28 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1372 4 2 28 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
1373 4 2 28 F Brownsville Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1374 4 2 28 M Dahomey Brownsville 0 L NA NA NA NA NA NA NA 0 0
1375 4 2 28 F Dahomey Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1376 4 2 28 M Dahomey Dahomey 0 L NA NA NA NA NA NA NA 0 0
1377 4 2 28 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1378 4 2 28 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
1381 4 2 28 F Barcelona Israel 1 N 275 11 13 NA 0 0 0 NA NA
1382 4 2 28 M Israel Barcelona 1 N 251 10 13 1.061 NA NA NA 33 0
1383 4 2 28 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1384 4 2 28 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1385 4 2 28 F Dahomey Israel 0 N NA NA NA NA 0 0 0 NA NA
1386 4 2 28 M Israel Dahomey 1 L NA NA NA 0.957 NA NA NA 146 1
1387 4 2 28 F Israel Israel 1 L 248 10 10 NA 0 0 0 NA NA
1388 4 2 28 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
1389 4 2 28 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
1390 4 2 28 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
1391 4 2 28 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
1392 4 2 28 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
1393 4 2 28 F Brownsville Sweden 0 P NA NA NA NA 0 0 0 NA NA
1394 4 2 28 M Sweden Brownsville 0 P NA NA NA NA NA NA NA 0 0
1395 4 2 28 F Dahomey Sweden 0 P NA NA NA NA 0 0 0 NA NA
1396 4 2 28 M Sweden Dahomey 0 P NA NA NA NA NA NA NA 0 0
1397 4 2 28 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
1398 4 2 28 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
1399 4 2 28 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1400 4 2 28 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1401 5 1 29 F Barcelona Barcelona 0 P NA NA NA NA 0 0 0 NA NA
1402 5 1 29 M Barcelona Barcelona 0 P NA NA NA NA NA NA NA 0 0
1403 5 1 29 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1404 5 1 29 M Barcelona Brownsville 1 L 286 12 0 0.751 NA NA NA 0 46
1405 5 1 29 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1406 5 1 29 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1407 5 1 29 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1408 5 1 29 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
1409 5 1 29 F Sweden Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1410 5 1 29 M Barcelona Sweden 0 L NA NA NA NA NA NA NA 0 0
1411 5 1 29 F Barcelona Brownsville 1 L 267 11 5 NA NA NA NA NA NA
1412 5 1 29 M Brownsville Barcelona 0 N NA NA NA NA NA NA NA 0 0
1413 5 1 29 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1414 5 1 29 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1415 5 1 29 F Dahomey Brownsville 0 P NA NA NA NA 0 0 0 NA NA
1416 5 1 29 M Brownsville Dahomey 0 P NA NA NA NA NA NA NA 0 0
1417 5 1 29 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1418 5 1 29 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
1419 5 1 29 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1420 5 1 29 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
1421 5 1 29 F Barcelona Dahomey 1 P 280 11 18 NA 0 0 0 NA NA
1422 5 1 29 M Dahomey Barcelona 0 N NA NA NA NA NA NA NA 0 0
1423 5 1 29 F Brownsville Dahomey 1 P 284 11 22 NA 1 0 1 NA NA
1424 5 1 29 M Dahomey Brownsville 0 N NA NA NA NA NA NA NA 0 0
1425 5 1 29 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1426 5 1 29 M Dahomey Dahomey 1 L 237 9 23 0.963 NA NA NA 0 14
1427 5 1 29 F Israel Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1428 5 1 29 M Dahomey Israel 0 P NA NA NA NA NA NA NA 0 0
1429 5 1 29 F Sweden Dahomey 1 L 268 11 6 1.071 25 20 45 NA NA
1430 5 1 29 M Dahomey Sweden 0 N NA NA NA NA NA NA NA 0 0
1431 5 1 29 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
1432 5 1 29 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
1433 5 1 29 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1434 5 1 29 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1435 5 1 29 F Dahomey Israel 1 L 257 10 19 1.016 24 30 54 NA NA
1436 5 1 29 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
1437 5 1 29 F Israel Israel 0 N NA NA NA NA 0 0 0 NA NA
1438 5 1 29 M Israel Israel 1 L 278 11 16 0.862 NA NA NA 0 47
1439 5 1 29 F Sweden Israel 0 N NA NA NA NA 0 0 0 NA NA
1440 5 1 29 M Israel Sweden 1 L 263 10 1 1.011 NA NA NA 0 27
1441 5 1 29 F Barcelona Sweden 1 P 281 11 19 0.901 5 5 10 NA NA
1442 5 1 29 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
1443 5 1 29 F Brownsville Sweden 1 N 283 11 21 0.918 17 16 33 NA NA
1444 5 1 29 M Sweden Brownsville 1 N 278 11 16 0.890 NA NA NA 0 27
1445 5 1 29 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
1446 5 1 29 M Sweden Dahomey 1 L 270 11 8 1.036 NA NA NA 23 9
1447 5 1 29 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
1448 5 1 29 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
1449 5 1 29 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1450 5 1 29 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1451 5 1 30 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1452 5 1 30 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
1453 5 1 30 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1454 5 1 30 M Barcelona Brownsville 1 L 258 10 20 1.038 NA NA NA 0 65
1455 5 1 30 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1456 5 1 30 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1457 5 1 30 F Israel Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1458 5 1 30 M Barcelona Israel 1 L 264 11 2 0.998 NA NA NA 0 18
1459 5 1 30 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1460 5 1 30 M Barcelona Sweden 1 L 267 11 5 NA NA NA NA 0 20
1463 5 1 30 F Brownsville Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1464 5 1 30 M Brownsville Brownsville 1 P 279 11 17 0.907 NA NA NA 0 56
1465 5 1 30 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1466 5 1 30 M Brownsville Dahomey 1 L 272 11 10 0.944 NA NA NA 0 12
1467 5 1 30 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1468 5 1 30 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
1469 5 1 30 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1470 5 1 30 M Brownsville Sweden 1 L 243 10 5 NA NA NA NA 0 0
1471 5 1 30 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1472 5 1 30 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
1473 5 1 30 F Brownsville Dahomey 1 N 280 11 18 NA 1 1 2 NA NA
1474 5 1 30 M Dahomey Brownsville 1 N 287 12 1 NA NA NA NA 0 86
1475 5 1 30 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1476 5 1 30 M Dahomey Dahomey 1 P 249 10 11 1.007 NA NA NA 0 15
1477 5 1 30 F Israel Dahomey 1 L 251 10 13 1.113 34 30 64 NA NA
1478 5 1 30 M Dahomey Israel 0 N NA NA NA NA NA NA NA 0 0
1479 5 1 30 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1480 5 1 30 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
1481 5 1 30 F Barcelona Israel 1 L 264 11 2 0.979 16 18 34 NA NA
1482 5 1 30 M Israel Barcelona 0 N NA NA NA NA NA NA NA 0 0
1483 5 1 30 F Brownsville Israel 1 L 279 11 17 NA 0 0 0 NA NA
1484 5 1 30 M Israel Brownsville 0 N NA NA NA NA NA NA NA 0 0
1487 5 1 30 F Israel Israel 0 L NA NA NA NA 0 0 0 NA NA
1488 5 1 30 M Israel Israel 0 L NA NA NA NA NA NA NA 0 0
1489 5 1 30 F Sweden Israel 0 N NA NA NA NA 0 0 0 NA NA
1490 5 1 30 M Israel Sweden 1 L 245 10 7 1.140 NA NA NA 120 8
1491 5 1 30 F Barcelona Sweden 1 L 267 11 5 1.045 17 21 38 NA NA
1492 5 1 30 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
1493 5 1 30 F Brownsville Sweden 1 L 239 9 1 1.143 19 28 47 NA NA
1494 5 1 30 M Sweden Brownsville 0 N NA NA NA NA NA NA NA 0 0
1495 5 1 30 F Dahomey Sweden 1 N 282 11 20 0.976 5 9 14 NA NA
1496 5 1 30 M Sweden Dahomey 1 N 252 10 14 1.047 NA NA NA 21 7
1497 5 1 30 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
1498 5 1 30 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
1499 5 1 30 F Sweden Sweden 0 P NA NA NA NA 0 0 0 NA NA
1500 5 1 30 M Sweden Sweden 0 P NA NA NA NA NA NA NA 0 0
1501 5 2 31 F Barcelona Barcelona 1 L 240 10 2 1.053 10 18 28 NA NA
1502 5 2 31 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
1503 5 2 31 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1504 5 2 31 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
1505 5 2 31 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1506 5 2 31 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1507 5 2 31 F Israel Barcelona 1 L 260 10 22 NA 28 24 52 NA NA
1508 5 2 31 M Barcelona Israel 0 N NA NA NA NA NA NA NA 0 0
1509 5 2 31 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1510 5 2 31 M Barcelona Sweden 1 L 250 10 12 1.024 NA NA NA 10 0
1511 5 2 31 F Barcelona Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1512 5 2 31 M Brownsville Barcelona 1 L 257 10 19 NA NA NA NA 0 0
1513 5 2 31 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1514 5 2 31 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1515 5 2 31 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1516 5 2 31 M Brownsville Dahomey 1 L 259 10 21 1.084 NA NA NA 0 0
1517 5 2 31 F Israel Brownsville 1 L 259 10 21 NA 0 0 0 NA NA
1518 5 2 31 M Brownsville Israel 0 N NA NA NA NA NA NA NA 0 0
1519 5 2 31 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1520 5 2 31 M Brownsville Sweden 1 L 259 10 21 1.042 NA NA NA 0 88
1521 5 2 31 F Barcelona Dahomey 1 P 288 12 2 0.869 0 0 0 NA NA
1522 5 2 31 M Dahomey Barcelona 0 N NA NA NA NA NA NA NA 0 0
1523 5 2 31 F Brownsville Dahomey 1 L 267 11 5 1.209 24 38 62 NA NA
1524 5 2 31 M Dahomey Brownsville 0 N NA NA NA NA NA NA NA 0 0
1525 5 2 31 F Dahomey Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1526 5 2 31 M Dahomey Dahomey 0 L NA NA NA NA NA NA NA 0 0
1527 5 2 31 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1528 5 2 31 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
1529 5 2 31 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1530 5 2 31 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
1531 5 2 31 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
1532 5 2 31 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
1533 5 2 31 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1534 5 2 31 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1535 5 2 31 F Dahomey Israel 1 L 245 10 7 1.178 37 29 66 NA NA
1536 5 2 31 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
1537 5 2 31 F Israel Israel 1 L 247 10 9 1.221 38 25 63 NA NA
1538 5 2 31 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
1539 5 2 31 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
1540 5 2 31 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
1541 5 2 31 F Barcelona Sweden 0 N NA NA NA NA 0 0 0 NA NA
1542 5 2 31 M Sweden Barcelona 1 L 242 10 4 1.040 NA NA NA 12 64
1543 5 2 31 F Brownsville Sweden 0 N NA NA NA NA 0 0 0 NA NA
1544 5 2 31 M Sweden Brownsville 1 L 232 9 18 NA NA NA NA 50 6
1547 5 2 31 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
1548 5 2 31 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
1549 5 2 31 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
1550 5 2 31 M Sweden Sweden 1 L 262 10 0 0.971 NA NA NA 0 12
1551 5 2 32 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1552 5 2 32 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
1553 5 2 32 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1554 5 2 32 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
1555 5 2 32 F Dahomey Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1556 5 2 32 M Barcelona Dahomey 1 L 263 10 1 0.978 NA NA NA 116 37
1557 5 2 32 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1558 5 2 32 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
1559 5 2 32 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1560 5 2 32 M Barcelona Sweden 1 L 270 11 8 1.011 NA NA NA 16 7
1561 5 2 32 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1562 5 2 32 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
1563 5 2 32 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1564 5 2 32 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1565 5 2 32 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1566 5 2 32 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
1567 5 2 32 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1568 5 2 32 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
1569 5 2 32 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1570 5 2 32 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
1573 5 2 32 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1574 5 2 32 M Dahomey Brownsville 1 P 275 11 13 0.823 NA NA NA 0 79
1575 5 2 32 F Dahomey Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1576 5 2 32 M Dahomey Dahomey 0 L NA NA NA NA NA NA NA 0 0
1577 5 2 32 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1578 5 2 32 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
1579 5 2 32 F Sweden Dahomey 1 N 253 10 15 0.964 2 6 8 NA NA
1580 5 2 32 M Dahomey Sweden 1 N 273 11 11 0.902 NA NA NA 0 63
1581 5 2 32 F Barcelona Israel 0 P NA NA NA NA 0 0 0 NA NA
1582 5 2 32 M Israel Barcelona 0 P NA NA NA NA NA NA NA 0 0
1583 5 2 32 F Brownsville Israel 0 P NA NA NA NA 0 0 0 NA NA
1584 5 2 32 M Israel Brownsville 0 P NA NA NA NA NA NA NA 0 0
1585 5 2 32 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1586 5 2 32 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1587 5 2 32 F Israel Israel 0 L NA NA NA NA 0 0 0 NA NA
1588 5 2 32 M Israel Israel 0 L NA NA NA NA NA NA NA 0 0
1589 5 2 32 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
1590 5 2 32 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
1591 5 2 32 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
1592 5 2 32 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
1595 5 2 32 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
1596 5 2 32 M Sweden Dahomey 1 L 246 10 8 NA NA NA NA 69 0
1597 5 2 32 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
1598 5 2 32 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
1599 5 2 32 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1600 5 2 32 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1601 5 1 33 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1602 5 1 33 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
1603 5 1 33 F Brownsville Barcelona 1 L 280 11 18 NA 0 0 0 NA NA
1604 5 1 33 M Barcelona Brownsville 0 N NA NA NA NA NA NA NA 0 0
1605 5 1 33 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1606 5 1 33 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1607 5 1 33 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1608 5 1 33 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
1609 5 1 33 F Sweden Barcelona 1 L 286 12 0 0.847 15 14 29 NA NA
1610 5 1 33 M Barcelona Sweden 0 N NA NA NA NA NA NA NA 0 0
1611 5 1 33 F Barcelona Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1612 5 1 33 M Brownsville Barcelona 1 L 268 11 6 0.905 NA NA NA 0 11
1613 5 1 33 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1614 5 1 33 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1615 5 1 33 F Dahomey Brownsville 1 L 241 10 3 1.187 28 21 49 NA NA
1616 5 1 33 M Brownsville Dahomey 0 N NA NA NA NA NA NA NA 0 0
1617 5 1 33 F Israel Brownsville 1 L 272 11 10 0.926 16 22 38 NA NA
1618 5 1 33 M Brownsville Israel 0 N NA NA NA NA NA NA NA 0 0
1619 5 1 33 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1620 5 1 33 M Brownsville Sweden 1 L 260 10 22 1.010 NA NA NA 0 41
1621 5 1 33 F Barcelona Dahomey 1 N 263 10 1 0.979 20 20 40 NA NA
1622 5 1 33 M Dahomey Barcelona 1 N 259 10 21 0.988 NA NA NA 174 0
1623 5 1 33 F Brownsville Dahomey 1 P 246 10 8 1.078 14 14 28 NA NA
1624 5 1 33 M Dahomey Brownsville 0 N NA NA NA NA NA NA NA 0 0
1625 5 1 33 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1626 5 1 33 M Dahomey Dahomey 1 L 246 10 8 0.989 NA NA NA 56 0
1627 5 1 33 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1628 5 1 33 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
1629 5 1 33 F Sweden Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1630 5 1 33 M Dahomey Sweden 1 L 246 10 8 0.976 NA NA NA 116 9
1631 5 1 33 F Barcelona Israel 1 L 253 10 15 1.068 20 26 46 NA NA
1632 5 1 33 M Israel Barcelona 0 N NA NA NA NA NA NA NA 0 0
1633 5 1 33 F Brownsville Israel 0 P NA NA NA NA 0 0 0 NA NA
1634 5 1 33 M Israel Brownsville 0 P NA NA NA NA NA NA NA 0 0
1635 5 1 33 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1636 5 1 33 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1637 5 1 33 F Israel Israel 0 N NA NA NA NA 0 0 0 NA NA
1638 5 1 33 M Israel Israel 1 P 280 11 18 NA NA NA NA 0 0
1639 5 1 33 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
1640 5 1 33 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
1641 5 1 33 F Barcelona Sweden 0 N NA NA NA NA 0 0 0 NA NA
1642 5 1 33 M Sweden Barcelona 1 L 274 11 12 0.912 NA NA NA 9 0
1643 5 1 33 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
1644 5 1 33 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
1645 5 1 33 F Dahomey Sweden 0 P NA NA NA NA 0 0 0 NA NA
1646 5 1 33 M Sweden Dahomey 0 P NA NA NA NA NA NA NA 0 0
1647 5 1 33 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
1648 5 1 33 M Sweden Israel 1 P 263 10 1 0.939 NA NA NA 54 62
1649 5 1 33 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
1650 5 1 33 M Sweden Sweden 1 L 270 11 8 NA NA NA NA 0 0
1651 5 1 34 F Barcelona Barcelona 1 L 244 10 6 1.190 36 23 59 NA NA
1652 5 1 34 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
1653 5 1 34 F Brownsville Barcelona 1 P 280 11 18 1.027 17 23 40 NA NA
1654 5 1 34 M Barcelona Brownsville 0 N NA NA NA NA NA NA NA 0 0
1655 5 1 34 F Dahomey Barcelona 1 N 259 10 21 1.054 27 23 50 NA NA
1656 5 1 34 M Barcelona Dahomey 1 N NA NA NA 0.983 NA NA NA 15 83
1657 5 1 34 F Israel Barcelona 1 P 252 10 14 1.089 28 36 64 NA NA
1658 5 1 34 M Barcelona Israel 0 N NA NA NA NA NA NA NA 0 0
1659 5 1 34 F Sweden Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1660 5 1 34 M Barcelona Sweden 0 L NA NA NA NA NA NA NA 0 0
1661 5 1 34 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1662 5 1 34 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
1663 5 1 34 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1664 5 1 34 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1665 5 1 34 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1666 5 1 34 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
1667 5 1 34 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1668 5 1 34 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
1669 5 1 34 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1670 5 1 34 M Brownsville Sweden 1 P 261 10 23 0.945 NA NA NA 0 89
1671 5 1 34 F Barcelona Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1672 5 1 34 M Dahomey Barcelona 1 P 249 10 11 0.984 NA NA NA 0 35
1673 5 1 34 F Brownsville Dahomey 1 P 251 10 13 1.013 23 13 36 NA NA
1674 5 1 34 M Dahomey Brownsville 0 N NA NA NA NA NA NA NA 0 0
1675 5 1 34 F Dahomey Dahomey 1 P 288 12 2 NA 0 0 0 NA NA
1676 5 1 34 M Dahomey Dahomey 0 N NA NA NA NA NA NA NA 0 0
1677 5 1 34 F Israel Dahomey 1 L 251 10 13 1.034 21 26 47 NA NA
1678 5 1 34 M Dahomey Israel 0 N NA NA NA NA NA NA NA 0 0
1679 5 1 34 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1680 5 1 34 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
1681 5 1 34 F Barcelona Israel 0 N NA NA NA NA 0 0 0 NA NA
1682 5 1 34 M Israel Barcelona 1 P 252 10 14 0.969 NA NA NA 0 0
1683 5 1 34 F Brownsville Israel 0 N NA NA NA NA 0 0 0 NA NA
1684 5 1 34 M Israel Brownsville 1 L 253 10 15 0.936 NA NA NA 32 47
1685 5 1 34 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1686 5 1 34 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1687 5 1 34 F Israel Israel 1 L 247 10 9 0.995 17 14 31 NA NA
1688 5 1 34 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
1689 5 1 34 F Sweden Israel 0 N NA NA NA NA 0 0 0 NA NA
1690 5 1 34 M Israel Sweden 1 L 270 11 8 0.973 NA NA NA 0 74
1691 5 1 34 F Barcelona Sweden 1 L 238 9 0 1.023 27 21 48 NA NA
1692 5 1 34 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
1693 5 1 34 F Brownsville Sweden 0 P NA NA NA NA 0 0 0 NA NA
1694 5 1 34 M Sweden Brownsville 0 P NA NA NA NA NA NA NA 0 0
1695 5 1 34 F Dahomey Sweden 0 L NA NA NA NA 0 0 0 NA NA
1696 5 1 34 M Sweden Dahomey 0 L NA NA NA NA NA NA NA 0 0
1697 5 1 34 F Israel Sweden 1 N 274 11 12 0.962 0 0 0 NA NA
1698 5 1 34 M Sweden Israel 1 N 270 11 8 0.880 NA NA NA 0 33
1699 5 1 34 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1700 5 1 34 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1701 5 2 35 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1702 5 2 35 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
1703 5 2 35 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1704 5 2 35 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
1705 5 2 35 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1706 5 2 35 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
1707 5 2 35 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1708 5 2 35 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
1709 5 2 35 F Sweden Barcelona 1 L 273 11 11 0.967 9 11 20 NA NA
1710 5 2 35 M Barcelona Sweden 0 N NA NA NA NA NA NA NA 0 0
1711 5 2 35 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1712 5 2 35 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
1713 5 2 35 F Brownsville Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1714 5 2 35 M Brownsville Brownsville 1 L 269 11 7 0.928 NA NA NA 0 101
1715 5 2 35 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1716 5 2 35 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
1717 5 2 35 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1718 5 2 35 M Brownsville Israel 1 L 266 11 4 1.067 NA NA NA 0 52
1719 5 2 35 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1720 5 2 35 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
1721 5 2 35 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1722 5 2 35 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
1723 5 2 35 F Brownsville Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1724 5 2 35 M Dahomey Brownsville 0 L NA NA NA NA NA NA NA 0 0
1725 5 2 35 F Dahomey Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1726 5 2 35 M Dahomey Dahomey 0 L NA NA NA NA NA NA NA 0 0
1727 5 2 35 F Israel Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1728 5 2 35 M Dahomey Israel 1 L 271 11 9 0.782 NA NA NA 0 23
1729 5 2 35 F Sweden Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1730 5 2 35 M Dahomey Sweden 1 L 281 11 19 1.017 NA NA NA 0 59
1731 5 2 35 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
1732 5 2 35 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
1733 5 2 35 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1734 5 2 35 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1735 5 2 35 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1736 5 2 35 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1737 5 2 35 F Israel Israel 0 L NA NA NA NA 0 0 0 NA NA
1738 5 2 35 M Israel Israel 0 L NA NA NA NA NA NA NA 0 0
1739 5 2 35 F Sweden Israel 1 L 281 11 19 NA 0 0 0 NA NA
1740 5 2 35 M Israel Sweden 0 N NA NA NA NA NA NA NA 0 0
1741 5 2 35 F Barcelona Sweden 1 L 290 12 4 1.097 29 29 58 NA NA
1742 5 2 35 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
1743 5 2 35 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
1744 5 2 35 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
1745 5 2 35 F Dahomey Sweden 0 L NA NA NA NA 0 0 0 NA NA
1746 5 2 35 M Sweden Dahomey 0 L NA NA NA NA NA NA NA 0 0
1747 5 2 35 F Israel Sweden 0 P NA NA NA NA 0 0 0 NA NA
1748 5 2 35 M Sweden Israel 0 P NA NA NA NA NA NA NA 0 0
1749 5 2 35 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1750 5 2 35 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1751 5 2 36 F Barcelona Barcelona 1 L 259 10 21 1.090 20 32 52 NA NA
1752 5 2 36 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
1753 5 2 36 F Brownsville Barcelona 1 L 277 11 15 NA 0 0 0 NA NA
1754 5 2 36 M Barcelona Brownsville 0 N NA NA NA NA NA NA NA 0 0
1755 5 2 36 F Dahomey Barcelona 1 L 250 10 12 NA 15 14 29 NA NA
1756 5 2 36 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
1757 5 2 36 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1758 5 2 36 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
1759 5 2 36 F Sweden Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1760 5 2 36 M Barcelona Sweden 0 L NA NA NA NA NA NA NA 0 0
1761 5 2 36 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1762 5 2 36 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
1763 5 2 36 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1764 5 2 36 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1765 5 2 36 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1766 5 2 36 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
1767 5 2 36 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1768 5 2 36 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
1769 5 2 36 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1770 5 2 36 M Brownsville Sweden 1 L 285 11 23 0.926 NA NA NA 0 91
1771 5 2 36 F Barcelona Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1772 5 2 36 M Dahomey Barcelona 1 P 286 12 0 0.851 NA NA NA 0 18
1773 5 2 36 F Brownsville Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1774 5 2 36 M Dahomey Brownsville 1 L 276 11 14 0.821 NA NA NA 0 73
1775 5 2 36 F Dahomey Dahomey 1 P 272 11 10 NA 0 0 0 NA NA
1776 5 2 36 M Dahomey Dahomey 0 N NA NA NA NA NA NA NA 0 0
1777 5 2 36 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1778 5 2 36 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
1779 5 2 36 F Sweden Dahomey 1 P 256 10 18 0.977 13 23 36 NA NA
1780 5 2 36 M Dahomey Sweden 0 N NA NA NA NA NA NA NA 0 0
1781 5 2 36 F Barcelona Israel 1 L 272 11 10 1.056 0 0 0 NA NA
1782 5 2 36 M Israel Barcelona 0 N NA NA NA NA NA NA NA 0 0
1783 5 2 36 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1784 5 2 36 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1785 5 2 36 F Dahomey Israel 1 L 245 10 7 1.062 33 21 54 NA NA
1786 5 2 36 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
1787 5 2 36 F Israel Israel 1 L 242 10 4 1.198 0 0 0 NA NA
1788 5 2 36 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
1789 5 2 36 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
1790 5 2 36 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
1791 5 2 36 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
1792 5 2 36 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
1793 5 2 36 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
1794 5 2 36 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
1795 5 2 36 F Dahomey Sweden 0 L NA NA NA NA 0 0 0 NA NA
1796 5 2 36 M Sweden Dahomey 0 L NA NA NA NA NA NA NA 0 0
1797 5 2 36 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
1798 5 2 36 M Sweden Israel 1 L 250 10 12 NA NA NA NA 0 0
1799 5 2 36 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1800 5 2 36 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1801 6 1 37 F Barcelona Barcelona 1 L 252 10 14 NA 20 16 36 NA NA
1802 6 1 37 M Barcelona Barcelona 0 N NA NA NA NA NA NA NA 0 0
1803 6 1 37 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1804 6 1 37 M Barcelona Brownsville 1 L 241 10 3 1.060 NA NA NA 36 68
1807 6 1 37 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1808 6 1 37 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
1809 6 1 37 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1810 6 1 37 M Barcelona Sweden 1 L 260 10 22 1.084 NA NA NA 97 4
1811 6 1 37 F Barcelona Brownsville 1 L NA NA NA 1.177 31 35 66 NA NA
1812 6 1 37 M Brownsville Barcelona 0 N NA NA NA NA NA NA NA 0 0
1815 6 1 37 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1816 6 1 37 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
1817 6 1 37 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1818 6 1 37 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
1819 6 1 37 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1820 6 1 37 M Brownsville Sweden 1 L 257 10 19 0.898 NA NA NA 0 34
1821 6 1 37 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1822 6 1 37 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
1823 6 1 37 F Brownsville Dahomey 1 N 242 10 4 1.018 17 18 35 NA NA
1824 6 1 37 M Dahomey Brownsville 1 N 260 10 22 0.932 NA NA NA 0 74
1825 6 1 37 F Dahomey Dahomey 0 P NA NA NA NA 0 0 0 NA NA
1826 6 1 37 M Dahomey Dahomey 0 P NA NA NA NA NA NA NA 0 0
1827 6 1 37 F Israel Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1828 6 1 37 M Dahomey Israel 1 L 251 10 13 0.872 NA NA NA 0 35
1829 6 1 37 F Sweden Dahomey 1 L 226 9 12 1.096 30 37 67 NA NA
1830 6 1 37 M Dahomey Sweden 0 N NA NA NA NA NA NA NA 0 0
1831 6 1 37 F Barcelona Israel 0 N NA NA NA NA 0 0 0 NA NA
1832 6 1 37 M Israel Barcelona 1 L 270 11 8 0.865 NA NA NA 0 101
1833 6 1 37 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
1834 6 1 37 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
1835 6 1 37 F Dahomey Israel 1 L 259 10 21 0.959 0 0 0 NA NA
1836 6 1 37 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
1837 6 1 37 F Israel Israel 0 P NA NA NA NA 0 0 0 NA NA
1838 6 1 37 M Israel Israel 0 P NA NA NA NA NA NA NA 0 0
1839 6 1 37 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
1840 6 1 37 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
1843 6 1 37 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
1844 6 1 37 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
1845 6 1 37 F Dahomey Sweden 0 L NA NA NA NA 0 0 0 NA NA
1846 6 1 37 M Sweden Dahomey 0 L NA NA NA NA NA NA NA 0 0
1847 6 1 37 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
1848 6 1 37 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
1849 6 1 37 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1850 6 1 37 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1851 6 1 38 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1852 6 1 38 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
1853 6 1 38 F Brownsville Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1854 6 1 38 M Barcelona Brownsville 1 L 269 11 7 NA NA NA NA 0 0
1855 6 1 38 F Dahomey Barcelona 1 L 240 10 2 1.100 30 28 58 NA NA
1856 6 1 38 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
1857 6 1 38 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1858 6 1 38 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
1859 6 1 38 F Sweden Barcelona 1 N 252 10 14 NA 22 17 39 NA NA
1860 6 1 38 M Barcelona Sweden 1 N 241 10 3 NA NA NA NA 0 107
1861 6 1 38 F Barcelona Brownsville 1 L 246 10 8 NA 0 0 0 NA NA
1862 6 1 38 M Brownsville Barcelona 0 N NA NA NA NA NA NA NA 0 0
1863 6 1 38 F Brownsville Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1864 6 1 38 M Brownsville Brownsville 1 L 230 9 16 NA NA NA NA 0 0
1865 6 1 38 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1866 6 1 38 M Brownsville Dahomey 1 L 247 10 9 NA NA NA NA 0 0
1867 6 1 38 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1868 6 1 38 M Brownsville Israel 1 L 261 10 23 0.892 NA NA NA 0 56
1869 6 1 38 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1870 6 1 38 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
1871 6 1 38 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1872 6 1 38 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
1873 6 1 38 F Brownsville Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1874 6 1 38 M Dahomey Brownsville 0 L NA NA NA NA NA NA NA 0 0
1875 6 1 38 F Dahomey Dahomey 1 N 256 10 18 0.976 0 0 0 NA NA
1876 6 1 38 M Dahomey Dahomey 1 N 247 10 9 NA NA NA NA 0 28
1877 6 1 38 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1878 6 1 38 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
1879 6 1 38 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1880 6 1 38 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
1881 6 1 38 F Barcelona Israel 1 L 247 10 9 NA 0 0 0 NA NA
1882 6 1 38 M Israel Barcelona 0 N NA NA NA NA NA NA NA 0 0
1883 6 1 38 F Brownsville Israel 0 N NA NA NA NA 0 0 0 NA NA
1884 6 1 38 M Israel Brownsville 1 P 257 10 19 0.918 NA NA NA 0 105
1885 6 1 38 F Dahomey Israel 1 L 254 10 16 NA 0 0 0 NA NA
1886 6 1 38 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
1887 6 1 38 F Israel Israel 0 L NA NA NA NA 0 0 0 NA NA
1888 6 1 38 M Israel Israel 0 L NA NA NA NA NA NA NA 0 0
1889 6 1 38 F Sweden Israel 1 N 247 10 9 NA 0 0 0 NA NA
1890 6 1 38 M Israel Sweden 1 N 239 9 1 NA NA NA NA 0 65
1891 6 1 38 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
1892 6 1 38 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
1893 6 1 38 F Brownsville Sweden 1 L 239 9 1 NA 0 0 0 NA NA
1894 6 1 38 M Sweden Brownsville 0 N NA NA NA NA NA NA NA 0 0
1895 6 1 38 F Dahomey Sweden 0 L NA NA NA NA 0 0 0 NA NA
1896 6 1 38 M Sweden Dahomey 0 L NA NA NA NA NA NA NA 0 0
1897 6 1 38 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
1898 6 1 38 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
1899 6 1 38 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
1900 6 1 38 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
1901 6 1 39 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1902 6 1 39 M Barcelona Barcelona 1 P 273 11 11 0.865 NA NA NA 0 0
1903 6 1 39 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1904 6 1 39 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
1905 6 1 39 F Dahomey Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1906 6 1 39 M Barcelona Dahomey 1 L 254 10 16 0.929 NA NA NA 0 35
1907 6 1 39 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1908 6 1 39 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
1909 6 1 39 F Sweden Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1910 6 1 39 M Barcelona Sweden 0 L NA NA NA NA NA NA NA 0 0
1911 6 1 39 F Barcelona Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1912 6 1 39 M Brownsville Barcelona 1 P 247 10 9 NA NA NA NA 0 48
1913 6 1 39 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1914 6 1 39 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
1915 6 1 39 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1916 6 1 39 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
1917 6 1 39 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1918 6 1 39 M Brownsville Israel 1 L 244 10 6 0.706 NA NA NA 0 118
1919 6 1 39 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
1920 6 1 39 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
1921 6 1 39 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1922 6 1 39 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
1923 6 1 39 F Brownsville Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1924 6 1 39 M Dahomey Brownsville 0 L NA NA NA NA NA NA NA 0 0
1925 6 1 39 F Dahomey Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1926 6 1 39 M Dahomey Dahomey 0 L NA NA NA NA NA NA NA 0 0
1927 6 1 39 F Israel Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1928 6 1 39 M Dahomey Israel 1 L 249 10 11 1.078 NA NA NA 84 22
1929 6 1 39 F Sweden Dahomey 0 N NA NA NA NA 0 0 0 NA NA
1930 6 1 39 M Dahomey Sweden 1 L 243 10 5 1.008 NA NA NA 49 6
1931 6 1 39 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
1932 6 1 39 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
1933 6 1 39 F Brownsville Israel 1 P NA NA NA 1.094 0 0 0 NA NA
1934 6 1 39 M Israel Brownsville 0 N NA NA NA NA NA NA NA 0 0
1935 6 1 39 F Dahomey Israel 0 L NA NA NA NA 0 0 0 NA NA
1936 6 1 39 M Israel Dahomey 0 L NA NA NA NA NA NA NA 0 0
1937 6 1 39 F Israel Israel 1 N 270 11 8 NA 0 0 0 NA NA
1938 6 1 39 M Israel Israel 1 N 268 11 6 0.844 NA NA NA 73 36
1939 6 1 39 F Sweden Israel 1 N 253 10 15 1.068 28 18 46 NA NA
1940 6 1 39 M Israel Sweden 1 N 271 11 9 0.900 NA NA NA 39 16
1941 6 1 39 F Barcelona Sweden 1 P 245 10 7 1.040 21 25 46 NA NA
1942 6 1 39 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
1943 6 1 39 F Brownsville Sweden 1 L 241 10 3 NA 0 0 0 NA NA
1944 6 1 39 M Sweden Brownsville 0 N NA NA NA NA NA NA NA 0 0
1945 6 1 39 F Dahomey Sweden 1 P 251 10 13 NA 1 1 2 NA NA
1946 6 1 39 M Sweden Dahomey 0 N NA NA NA NA NA NA NA 0 0
1951 6 1 40 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1952 6 1 40 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
1953 6 1 40 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1954 6 1 40 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
1955 6 1 40 F Dahomey Barcelona 1 P 257 10 19 0.985 22 32 54 NA NA
1956 6 1 40 M Barcelona Dahomey 0 N NA NA NA NA NA NA NA 0 0
1957 6 1 40 F Israel Barcelona 0 N NA NA NA NA 0 0 0 NA NA
1958 6 1 40 M Barcelona Israel 1 P 277 11 15 NA NA NA NA 0 66
1959 6 1 40 F Sweden Barcelona 0 L NA NA NA NA 0 0 0 NA NA
1960 6 1 40 M Barcelona Sweden 0 L NA NA NA NA NA NA NA 0 0
1961 6 1 40 F Barcelona Brownsville 1 N 255 10 17 0.989 8 8 16 NA NA
1962 6 1 40 M Brownsville Barcelona 1 N 287 12 1 0.919 NA NA NA 0 66
1963 6 1 40 F Brownsville Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1964 6 1 40 M Brownsville Brownsville 1 L 247 10 9 0.999 NA NA NA 0 90
1965 6 1 40 F Dahomey Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1966 6 1 40 M Brownsville Dahomey 1 L NA NA NA 0.910 NA NA NA 0 14
1967 6 1 40 F Israel Brownsville 0 P NA NA NA NA 0 0 0 NA NA
1968 6 1 40 M Brownsville Israel 0 P NA NA NA NA NA NA NA 0 0
1969 6 1 40 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
1970 6 1 40 M Brownsville Sweden 1 P 240 10 2 0.999 NA NA NA 0 0
1971 6 1 40 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1972 6 1 40 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
1973 6 1 40 F Brownsville Dahomey 1 P 242 10 4 1.024 29 30 59 NA NA
1974 6 1 40 M Dahomey Brownsville 0 N NA NA NA NA NA NA NA 0 0
1975 6 1 40 F Dahomey Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1976 6 1 40 M Dahomey Dahomey 0 L NA NA NA NA NA NA NA 0 0
1977 6 1 40 F Israel Dahomey 1 L 242 10 4 NA 0 0 0 NA NA
1978 6 1 40 M Dahomey Israel 0 N NA NA NA NA NA NA NA 0 0
1979 6 1 40 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
1980 6 1 40 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
1981 6 1 40 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
1982 6 1 40 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
1983 6 1 40 F Brownsville Israel 1 P 245 10 7 0.996 23 18 41 NA NA
1984 6 1 40 M Israel Brownsville 0 N NA NA NA NA NA NA NA 0 0
1985 6 1 40 F Dahomey Israel 1 L 250 10 12 NA 0 0 0 NA NA
1986 6 1 40 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
1987 6 1 40 F Israel Israel 1 L 272 11 10 0.994 2 4 6 NA NA
1988 6 1 40 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
1989 6 1 40 F Sweden Israel 0 N NA NA NA NA 0 0 0 NA NA
1990 6 1 40 M Israel Sweden 1 L 243 10 5 1.012 NA NA NA 0 4
1991 6 1 40 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
1992 6 1 40 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
1993 6 1 40 F Brownsville Sweden 1 N 242 10 4 1.033 26 28 54 NA NA
1994 6 1 40 M Sweden Brownsville 1 N 257 10 19 0.906 NA NA NA 48 60
1995 6 1 40 F Dahomey Sweden 1 L 275 11 13 0.908 0 0 0 NA NA
1996 6 1 40 M Sweden Dahomey 0 N NA NA NA NA NA NA NA 0 0
1997 6 1 40 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
1998 6 1 40 M Sweden Israel 1 L 248 10 10 0.987 NA NA NA 124 23
1999 6 1 40 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
2000 6 1 40 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
2001 6 1 41 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
2002 6 1 41 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
2003 6 1 41 F Brownsville Barcelona 1 N 269 11 7 1.042 23 15 38 NA NA
2004 6 1 41 M Barcelona Brownsville 1 N 271 11 9 0.963 NA NA NA 97 24
2005 6 1 41 F Dahomey Barcelona 0 N NA NA NA NA 0 0 0 NA NA
2006 6 1 41 M Barcelona Dahomey 1 P 244 10 6 1.059 NA NA NA 58 9
2007 6 1 41 F Israel Barcelona 1 P 250 10 12 NA 27 21 48 NA NA
2008 6 1 41 M Barcelona Israel 0 N NA NA NA NA NA NA NA 0 0
2009 6 1 41 F Sweden Barcelona 1 P 248 10 10 1.149 23 20 43 NA NA
2010 6 1 41 M Barcelona Sweden 0 N NA NA NA NA NA NA NA 0 0
2011 6 1 41 F Barcelona Brownsville 1 N 274 11 12 NA 0 0 0 NA NA
2012 6 1 41 M Brownsville Barcelona 1 N 242 10 4 1.030 NA NA NA 0 32
2013 6 1 41 F Brownsville Brownsville 1 N 254 10 16 NA 0 0 0 NA NA
2014 6 1 41 M Brownsville Brownsville 1 N 243 10 5 0.947 NA NA NA 0 0
2015 6 1 41 F Dahomey Brownsville 1 L 253 10 15 1.157 48 26 74 NA NA
2016 6 1 41 M Brownsville Dahomey 0 N NA NA NA NA NA NA NA 0 0
2017 6 1 41 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2018 6 1 41 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
2019 6 1 41 F Sweden Brownsville 1 N 266 11 4 0.998 1 2 3 NA NA
2020 6 1 41 M Brownsville Sweden 1 N 288 12 2 NA NA NA NA 0 0
2021 6 1 41 F Barcelona Dahomey 1 N 247 10 9 1.092 16 26 42 NA NA
2022 6 1 41 M Dahomey Barcelona 1 N 250 10 12 1.060 NA NA NA 45 3
2023 6 1 41 F Brownsville Dahomey 1 N 272 11 10 1.005 14 21 35 NA NA
2024 6 1 41 M Dahomey Brownsville 1 N 284 11 22 1.021 NA NA NA 4 0
2025 6 1 41 F Dahomey Dahomey 1 P 245 10 7 1.074 38 32 70 NA NA
2026 6 1 41 M Dahomey Dahomey 0 N NA NA NA NA NA NA NA 0 0
2027 6 1 41 F Israel Dahomey 1 N 274 11 12 0.967 0 0 0 NA NA
2028 6 1 41 M Dahomey Israel 1 N 241 10 3 1.042 NA NA NA 0 54
2029 6 1 41 F Sweden Dahomey 1 L 240 10 2 NA 33 31 64 NA NA
2030 6 1 41 M Dahomey Sweden 0 N NA NA NA NA NA NA NA 0 0
2031 6 1 41 F Barcelona Israel 1 P 248 10 10 1.106 22 30 52 NA NA
2032 6 1 41 M Israel Barcelona 0 N NA NA NA NA NA NA NA 0 0
2033 6 1 41 F Brownsville Israel 1 N 245 10 7 1.063 7 9 16 NA NA
2034 6 1 41 M Israel Brownsville 1 N 272 11 10 0.876 NA NA NA 0 96
2035 6 1 41 F Dahomey Israel 1 N 252 10 14 0.985 18 21 39 NA NA
2036 6 1 41 M Israel Dahomey 1 N 263 10 1 0.904 NA NA NA 0 58
2037 6 1 41 F Israel Israel 1 L 231 9 17 1.053 28 25 53 NA NA
2038 6 1 41 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
2039 6 1 41 F Sweden Israel 1 N 238 9 0 1.205 0 0 0 NA NA
2040 6 1 41 M Israel Sweden 1 N 247 10 9 NA NA NA NA NA NA
2041 6 1 41 F Barcelona Sweden 1 L 273 11 11 1.106 31 38 69 NA NA
2042 6 1 41 M Sweden Barcelona 0 N NA NA NA NA NA NA NA 0 0
2043 6 1 41 F Brownsville Sweden 1 L 275 11 13 NA 0 0 0 NA NA
2044 6 1 41 M Sweden Brownsville 0 N NA NA NA NA NA NA NA 0 0
2045 6 1 41 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
2046 6 1 41 M Sweden Dahomey 1 L 252 10 14 NA NA NA NA 0 19
2049 6 1 41 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
2050 6 1 41 M Sweden Sweden 1 L 268 11 6 NA NA NA NA 0 0
2051 6 1 42 F Barcelona Barcelona 1 N 257 10 19 1.090 21 26 47 NA NA
2052 6 1 42 M Barcelona Barcelona 1 N 255 10 17 0.995 NA NA NA 90 0
2053 6 1 42 F Brownsville Barcelona 1 N 270 11 8 NA 0 0 0 NA NA
2054 6 1 42 M Barcelona Brownsville 1 N 255 10 17 0.995 NA NA NA 0 16
2055 6 1 42 F Dahomey Barcelona 0 N NA NA NA NA 0 0 0 NA NA
2056 6 1 42 M Barcelona Dahomey 1 L 255 10 17 0.973 NA NA NA 70 68
2057 6 1 42 F Israel Barcelona 0 N NA NA NA NA 0 0 0 NA NA
2058 6 1 42 M Barcelona Israel 1 L 275 11 13 NA NA NA NA 0 0
2059 6 1 42 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
2060 6 1 42 M Barcelona Sweden 1 L 268 11 6 0.965 NA NA NA 81 33
2063 6 1 42 F Brownsville Brownsville 1 L 245 10 7 1.165 39 34 73 NA NA
2064 6 1 42 M Brownsville Brownsville 0 N NA NA NA NA NA NA NA 0 0
2065 6 1 42 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2066 6 1 42 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
2067 6 1 42 F Israel Brownsville 1 N 250 10 12 1.070 24 25 49 NA NA
2068 6 1 42 M Brownsville Israel 1 N 254 10 16 NA NA NA NA 0 99
2069 6 1 42 F Sweden Brownsville 1 N 258 10 20 0.994 0 0 0 NA NA
2070 6 1 42 M Brownsville Sweden 1 N 274 11 12 0.902 NA NA NA 0 43
2071 6 1 42 F Barcelona Dahomey 1 N 241 10 3 1.103 22 23 45 NA NA
2072 6 1 42 M Dahomey Barcelona 1 N 254 10 16 0.981 NA NA NA 14 29
2073 6 1 42 F Brownsville Dahomey 1 N 230 9 16 0.916 20 20 40 NA NA
2074 6 1 42 M Dahomey Brownsville 1 N 242 10 4 0.995 NA NA NA 0 17
2075 6 1 42 F Dahomey Dahomey 1 L 252 10 14 1.102 27 28 55 NA NA
2076 6 1 42 M Dahomey Dahomey 0 N NA NA NA NA NA NA NA 0 0
2077 6 1 42 F Israel Dahomey 1 N 259 10 21 1.076 19 18 37 NA NA
2078 6 1 42 M Dahomey Israel 1 N 275 11 13 0.944 NA NA NA 121 0
2079 6 1 42 F Sweden Dahomey 1 L 269 11 7 1.003 24 23 47 NA NA
2080 6 1 42 M Dahomey Sweden 0 N NA NA NA NA NA NA NA 0 0
2081 6 1 42 F Barcelona Israel 1 L 245 10 7 1.212 0 0 0 NA NA
2082 6 1 42 M Israel Barcelona 0 N NA NA NA NA NA NA NA 0 0
2083 6 1 42 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
2084 6 1 42 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
2087 6 1 42 F Israel Israel 0 L NA NA NA NA 0 0 0 NA NA
2088 6 1 42 M Israel Israel 0 L NA NA NA NA NA NA NA 0 0
2089 6 1 42 F Sweden Israel 1 L 276 11 14 0.940 6 13 19 NA NA
2090 6 1 42 M Israel Sweden 0 N NA NA NA NA NA NA NA 0 0
2091 6 1 42 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
2092 6 1 42 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
2093 6 1 42 F Brownsville Sweden 1 L 254 10 16 0.897 8 14 22 NA NA
2094 6 1 42 M Sweden Brownsville 0 N NA NA NA NA NA NA NA 0 0
2095 6 1 42 F Dahomey Sweden 1 N 252 10 14 1.011 17 27 44 NA NA
2096 6 1 42 M Sweden Dahomey 1 N 262 10 0 0.970 NA NA NA 106 8
2097 6 1 42 F Israel Sweden 0 N NA NA NA NA 0 0 0 NA NA
2098 6 1 42 M Sweden Israel 1 L 286 12 0 NA NA NA NA 0 0
2099 6 1 42 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
2100 6 1 42 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
2101 6 1 43 F Barcelona Barcelona 0 L NA NA NA NA 0 0 0 NA NA
2102 6 1 43 M Barcelona Barcelona 0 L NA NA NA NA NA NA NA 0 0
2103 6 1 43 F Brownsville Barcelona 1 N 252 10 14 1.085 27 28 55 NA NA
2104 6 1 43 M Barcelona Brownsville 1 N 277 11 15 0.917 NA NA NA 0 82
2105 6 1 43 F Dahomey Barcelona 0 L NA NA NA NA 0 0 0 NA NA
2106 6 1 43 M Barcelona Dahomey 0 L NA NA NA NA NA NA NA 0 0
2107 6 1 43 F Israel Barcelona 0 L NA NA NA NA 0 0 0 NA NA
2108 6 1 43 M Barcelona Israel 0 L NA NA NA NA NA NA NA 0 0
2109 6 1 43 F Sweden Barcelona 1 P 259 10 21 0.936 10 9 19 NA NA
2110 6 1 43 M Barcelona Sweden 0 N NA NA NA NA NA NA NA 0 0
2111 6 1 43 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2112 6 1 43 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
2113 6 1 43 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2114 6 1 43 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
2115 6 1 43 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2116 6 1 43 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
2117 6 1 43 F Israel Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2118 6 1 43 M Brownsville Israel 0 L NA NA NA NA NA NA NA 0 0
2119 6 1 43 F Sweden Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2120 6 1 43 M Brownsville Sweden 0 L NA NA NA NA NA NA NA 0 0
2121 6 1 43 F Barcelona Dahomey 0 L NA NA NA NA 0 0 0 NA NA
2122 6 1 43 M Dahomey Barcelona 0 L NA NA NA NA NA NA NA 0 0
2123 6 1 43 F Brownsville Dahomey 0 L NA NA NA NA 0 0 0 NA NA
2124 6 1 43 M Dahomey Brownsville 0 L NA NA NA NA NA NA NA 0 0
2125 6 1 43 F Dahomey Dahomey 0 L NA NA NA NA 0 0 0 NA NA
2126 6 1 43 M Dahomey Dahomey 0 L NA NA NA NA NA NA NA 0 0
2127 6 1 43 F Israel Dahomey 0 L NA NA NA NA 0 0 0 NA NA
2128 6 1 43 M Dahomey Israel 0 L NA NA NA NA NA NA NA 0 0
2129 6 1 43 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
2130 6 1 43 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
2131 6 1 43 F Barcelona Israel 0 L NA NA NA NA 0 0 0 NA NA
2132 6 1 43 M Israel Barcelona 0 L NA NA NA NA NA NA NA 0 0
2133 6 1 43 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
2134 6 1 43 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
2135 6 1 43 F Dahomey Israel 1 N 256 10 18 0.999 28 18 46 NA NA
2136 6 1 43 M Israel Dahomey 1 N 275 11 13 0.827 NA NA NA 0 30
2137 6 1 43 F Israel Israel 0 L NA NA NA NA 0 0 0 NA NA
2138 6 1 43 M Israel Israel 0 L NA NA NA NA NA NA NA 0 0
2139 6 1 43 F Sweden Israel 0 L NA NA NA NA 0 0 0 NA NA
2140 6 1 43 M Israel Sweden 0 L NA NA NA NA NA NA NA 0 0
2141 6 1 43 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
2142 6 1 43 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
2143 6 1 43 F Brownsville Sweden 0 L NA NA NA NA 0 0 0 NA NA
2144 6 1 43 M Sweden Brownsville 0 L NA NA NA NA NA NA NA 0 0
2145 6 1 43 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
2146 6 1 43 M Sweden Dahomey 1 P 274 11 12 NA NA NA NA 0 49
2147 6 1 43 F Israel Sweden 0 L NA NA NA NA 0 0 0 NA NA
2148 6 1 43 M Sweden Israel 0 L NA NA NA NA NA NA NA 0 0
2149 6 1 43 F Sweden Sweden 0 L NA NA NA NA 0 0 0 NA NA
2150 6 1 43 M Sweden Sweden 0 L NA NA NA NA NA NA NA 0 0
2151 6 1 44 F Barcelona Barcelona 0 N NA NA NA NA 0 0 0 NA NA
2152 6 1 44 M Barcelona Barcelona 1 L 244 10 6 NA NA NA NA 0 0
2153 6 1 44 F Brownsville Barcelona 0 L NA NA NA NA 0 0 0 NA NA
2154 6 1 44 M Barcelona Brownsville 0 L NA NA NA NA NA NA NA 0 0
2155 6 1 44 F Dahomey Barcelona 1 N 256 10 18 1.080 13 4 17 NA NA
2156 6 1 44 M Barcelona Dahomey 1 N 245 10 7 1.017 NA NA NA 46 38
2157 6 1 44 F Israel Barcelona 0 N NA NA NA NA 0 0 0 NA NA
2158 6 1 44 M Barcelona Israel 1 L 243 10 5 1.059 NA NA NA 50 2
2159 6 1 44 F Sweden Barcelona 0 N NA NA NA NA 0 0 0 NA NA
2160 6 1 44 M Barcelona Sweden 1 P 261 10 23 0.952 NA NA NA 107 53
2161 6 1 44 F Barcelona Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2162 6 1 44 M Brownsville Barcelona 0 L NA NA NA NA NA NA NA 0 0
2163 6 1 44 F Brownsville Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2164 6 1 44 M Brownsville Brownsville 0 L NA NA NA NA NA NA NA 0 0
2165 6 1 44 F Dahomey Brownsville 0 L NA NA NA NA 0 0 0 NA NA
2166 6 1 44 M Brownsville Dahomey 0 L NA NA NA NA NA NA NA 0 0
2167 6 1 44 F Israel Brownsville 0 N NA NA NA NA 0 0 0 NA NA
2168 6 1 44 M Brownsville Israel 1 P 269 11 7 NA NA NA NA 0 79
2169 6 1 44 F Sweden Brownsville 0 N NA NA NA NA 0 0 0 NA NA
2170 6 1 44 M Brownsville Sweden 1 P 260 10 22 0.993 NA NA NA 0 45
2171 6 1 44 F Barcelona Dahomey 1 L 258 10 20 1.057 25 28 53 NA NA
2172 6 1 44 M Dahomey Barcelona 0 N NA NA NA NA NA NA NA 0 0
2173 6 1 44 F Brownsville Dahomey 0 L NA NA NA NA 0 0 0 NA NA
2174 6 1 44 M Dahomey Brownsville 0 L NA NA NA NA NA NA NA 0 0
2175 6 1 44 F Dahomey Dahomey 0 N NA NA NA NA 0 0 0 NA NA
2176 6 1 44 M Dahomey Dahomey 1 L NA NA NA NA NA NA NA 0 0
2177 6 1 44 F Israel Dahomey 0 N NA NA NA NA 0 0 0 NA NA
2178 6 1 44 M Dahomey Israel 1 L 262 10 0 0.988 NA NA NA 0 48
2179 6 1 44 F Sweden Dahomey 0 L NA NA NA NA 0 0 0 NA NA
2180 6 1 44 M Dahomey Sweden 0 L NA NA NA NA NA NA NA 0 0
2181 6 1 44 F Barcelona Israel 0 N NA NA NA NA 0 0 0 NA NA
2182 6 1 44 M Israel Barcelona 1 P 257 10 19 NA NA NA NA NA NA
2183 6 1 44 F Brownsville Israel 0 L NA NA NA NA 0 0 0 NA NA
2184 6 1 44 M Israel Brownsville 0 L NA NA NA NA NA NA NA 0 0
2185 6 1 44 F Dahomey Israel 1 P 275 11 13 NA 13 18 31 NA NA
2186 6 1 44 M Israel Dahomey 0 N NA NA NA NA NA NA NA 0 0
2187 6 1 44 F Israel Israel 1 P 245 10 7 1.100 19 24 43 NA NA
2188 6 1 44 M Israel Israel 0 N NA NA NA NA NA NA NA 0 0
2189 6 1 44 F Sweden Israel 1 L 251 10 13 1.124 21 45 66 NA NA
2190 6 1 44 M Israel Sweden 0 N NA NA NA NA NA NA NA 0 0
2191 6 1 44 F Barcelona Sweden 0 L NA NA NA NA 0 0 0 NA NA
2192 6 1 44 M Sweden Barcelona 0 L NA NA NA NA NA NA NA 0 0
2193 6 1 44 F Brownsville Sweden 1 L 275 11 13 NA 0 0 0 NA NA
2194 6 1 44 M Sweden Brownsville 0 N NA NA NA NA NA NA NA 0 0
2195 6 1 44 F Dahomey Sweden 0 N NA NA NA NA 0 0 0 NA NA
2196 6 1 44 M Sweden Dahomey 1 L 253 10 15 1.071 NA NA NA 58 81
2197 6 1 44 F Israel Sweden 1 N NA NA NA 1.114 9 14 23 NA NA
2198 6 1 44 M Sweden Israel 1 N 278 11 16 NA NA NA NA 0 0
2199 6 1 44 F Sweden Sweden 0 N NA NA NA NA 0 0 0 NA NA
2200 6 1 44 M Sweden Sweden 1 P 274 11 12 NA NA NA NA 0 0

Columns represent:

Individual: the focal fly being tested.

Block: the distinct peirod of time that the particular individual was tested.

Duplicate: Was the fly from the first independent mitochondrial duplicate copy or the second?

Replicate: A set of all possible combinations of the 5 haplotypes. Each replicate contained 25 cells.

Sex: was the focal individual female or male?

Focal_haplotype: what mtDNA haplotype did the focal individual carry?

Social_haplotype: what mtDNA haplotype did the social competitor of the focal individual carry?

Survived: did the focal individual die as a larva (L), as a pupa (P) or survive to adutlhood (N)?

Social_survival: did the social competitor die as a larva (L), as a pupa (P) or survive to adutlhood (N)?

Dev_time: how many hours did it take for the focal individual to progress from an egg to an adult. NA values indicate where individuals did not survive or development time could not be measured.

Day: how many days did it take the focal individual to develop?

Hours: lights were turned on at 7am every morning. How many hours did it take for individuals to eclose after this time?

Wing_length: what was the length in mm of the focal individuals right wing?

Maternal_female_offspring: how many adult female offspring did a focal female produce in a two day period?

Maternal_male_offspring: how many adult male offspring did a focal female produce in a two day period?

Maternal_total_offspring: how many adult offspring did a focal female produce in a two day period?

Paternal_focal_offspring: how many red-eye phenotype offspring were there across the two vials in the male adult fitness assay?

Paternal_bw_offspring: how many brown-eye phenotype offspring were there across the two vials in the male adult fitness assay?

R session information

This section provides information on the operating system and R packages attached during the production of this document, to allow easier replication of the analysis.

sessionInfo() %>% pander

R version 3.6.1 (2019-07-05)

Platform: x86_64-apple-darwin15.6.0 (64-bit)

locale: en_AU.UTF-8||en_AU.UTF-8||en_AU.UTF-8||C||en_AU.UTF-8||en_AU.UTF-8

attached base packages: stats, graphics, grDevices, utils, datasets, methods and base

other attached packages: forcats(v.0.4.0), stringr(v.1.4.0), pander(v.0.6.3), kableExtra(v.1.1.0), ggResidpanel(v.0.3.0), ggbeeswarm(v.0.6.0), ggpubr(v.0.2.2), magrittr(v.1.5), ggstance(v.0.3.2), ggExtra(v.0.8), ggridges(v.0.5.1), ggThemeAssist(v.0.1.5), ggplot2(v.3.2.1), MuMIn(v.1.43.6), dplyr(v.0.8.3), car(v.3.0-3), carData(v.3.0-2), brms(v.2.9.0), Rcpp(v.1.0.2), glmmTMB(v.0.2.3), lmerTest(v.3.1-0), lme4(v.1.1-21) and Matrix(v.1.2-17)

loaded via a namespace (and not attached): readxl(v.1.3.1), backports(v.1.1.4), plyr(v.1.8.4), igraph(v.1.2.4.1), lazyeval(v.0.2.2), TMB(v.1.7.15), splines(v.3.6.1), crosstalk(v.1.0.0), rstantools(v.1.5.1), inline(v.0.3.15), digest(v.0.6.20), qqplotr(v.0.0.3), htmltools(v.0.3.6), rsconnect(v.0.8.15), openxlsx(v.4.1.0.1), readr(v.1.3.1), matrixStats(v.0.54.0), xts(v.0.11-2), prettyunits(v.1.0.2), colorspace(v.1.4-1), rvest(v.0.3.4), haven(v.2.1.1), xfun(v.0.8), callr(v.3.3.1), crayon(v.1.3.4), jsonlite(v.1.6), zeallot(v.0.1.0), zoo(v.1.8-6), glue(v.1.3.1), gtable(v.0.3.0), webshot(v.0.5.1), pkgbuild(v.1.0.4), rstan(v.2.19.2), DEoptimR(v.1.0-8), abind(v.1.4-5), scales(v.1.0.0), miniUI(v.0.1.1.1), viridisLite(v.0.3.0), xtable(v.1.8-4), foreign(v.0.8-71), stats4(v.3.6.1), StanHeaders(v.2.18.1-10), DT(v.0.8), htmlwidgets(v.1.3), httr(v.1.4.1), threejs(v.0.3.1), pkgconfig(v.2.0.2), loo(v.2.1.0), tidyselect(v.0.2.5), labeling(v.0.3), rlang(v.0.4.0), reshape2(v.1.4.3), later(v.0.8.0), munsell(v.0.5.0), cellranger(v.1.1.0), tools(v.3.6.1), cli(v.1.1.0), evaluate(v.0.14), yaml(v.2.2.0), processx(v.3.4.1), knitr(v.1.24), zip(v.2.0.3), robustbase(v.0.93-5), purrr(v.0.3.2), nlme(v.3.1-140), mime(v.0.7), formatR(v.1.7), xml2(v.1.2.2), compiler(v.3.6.1), bayesplot(v.1.7.0), shinythemes(v.1.1.2), rstudioapi(v.0.10), beeswarm(v.0.2.3), plotly(v.4.9.0), curl(v.4.0), ggsignif(v.0.6.0), tibble(v.2.1.3), stringi(v.1.4.3), highr(v.0.8), ps(v.1.3.0), Brobdingnag(v.1.2-6), lattice(v.0.20-38), nloptr(v.1.2.1), markdown(v.1.1), shinyjs(v.1.0), vctrs(v.0.2.0), pillar(v.1.4.2), bridgesampling(v.0.7-2), data.table(v.1.12.2), cowplot(v.1.0.0), httpuv(v.1.5.1), R6(v.2.4.0), promises(v.1.0.1), gridExtra(v.2.3), rio(v.0.5.16), vipor(v.0.4.5), codetools(v.0.2-16), boot(v.1.3-22), colourpicker(v.1.0), MASS(v.7.3-51.4), gtools(v.3.8.1), assertthat(v.0.2.1), withr(v.2.1.2), shinystan(v.2.5.0), parallel(v.3.6.1), hms(v.0.5.0), grid(v.3.6.1), tidyr(v.0.8.3), coda(v.0.19-3), minqa(v.1.2.4), rmarkdown(v.1.14), numDeriv(v.2016.8-1.1), shiny(v.1.3.2), base64enc(v.0.1-3) and dygraphs(v.1.1.1.6)

References

Brooks, Mollie E, Kasper Kristensen, Koen J van Benthem, Arni Magnusson, Casper W Berg, Anders Nielsen, Hans J Skaug, Martin Maechler, and Benjamin M Bolker. 2017. “Modeling Zero-Inflated Count Data with glmmTMB.” Journal Article. BioRxiv, 132753.

Symonds, Matthew R. E., and Adnan Moussalli. 2011. “A Brief Guide to Model Selection, Multimodel Inference and Model Averaging in Behavioural Ecology Using Akaike’s Information Criterion.” Journal Article. Behavioral Ecology and Sociobiology 65 (1): 13–21. https://doi.org/10.1007/s00265-010-1037-6.

LS0tCnRpdGxlOiBLaW4gc2VsZWN0aW9uIHN1YnZlcnRzIG1pdG9jaG9uZHJpYWwgdHJhbnNtaXNzaW9uIGJpYXMgYW5kIGFsbG93cyBtYWxlIG10RE5BIGV2b2x1dGlvbgphdXRob3I6ICJUaG9tYXMgS2VhbmV5LCBIZWlkaSBXb25nLCBEYW1pYW4gRG93bGluZywgVGhlcmVzYSBKb25lcywgYW5kIEx1a2UgSG9sbWFuIgpiaWJsaW9ncmFwaHk6ICJzdXBwX3JlZmVyZW5jZXMuYmliIiAKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGRlcHRoOiAxCiAgICBudW1iZXJfc2VjdGlvbnM6IG5vCiAgICB0aGVtZTogeWV0aQogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCnN1YnRpdGxlOiBTdXBwbGVtZW50YXJ5IG1hdGVyaWFsCmVkaXRvcl9vcHRpb25zOgogIGNodW5rX291dHB1dF90eXBlOiBjb25zb2xlCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgY2FjaGUgPSBUUlVFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSkKYGBgCgojIFN1cHBsZW1lbnRhcnkgbWV0aG9kcwoKClNjaGVtYXRpY3MgZm9yIHJlcGxhY2VtZW50IG9mIHRoZSB1bmtub3duIF9TeGwtR0ZQXyBudWNsZWFyIGJhY2tncm91bmQgd2l0aCB0aGUgaXNvZ2VuaWMgX3deMTExOF5fIGJhY2tncm91bmQKCiFbKipGaWd1cmUgUzEqKjogQ3Jvc3Npbmcgc2NoZW1lIHVzZWQgdG8gY3JlYXRlIGEgc3RhbmRhcmQgaG9tb3p5Z291cyBHRlAtdyBsaW5lLiBNYWxlcyBmcm9tIHRoaXMgbGluZSB3ZXJlIGNyb3NzZWQgd2l0aCBmZW1hbGVzIGNhcnJ5aW5nIGEgc3BlY2lmaWMgbWl0b2Nob25kcmlhbCBoYXBsb3R5cGUsIHRvIGNyZWF0ZSBleHBlcmltZW50YWwgbWl0b2xpbmVzLiBUaGVzZSBuZXdseSBwcm9kdWNlZCBsaW5lcyBjYXJyaWVkIHRoZSBtaXRvY2hvbmRyaWFsIGhhcGxvdHlwZSBvZiB0aGUgZmVtYWxlIGFuZCB3ZXJlIGhldGVyb3p5Z291cyBmb3IgdGhlIFN4bC1HRlAgY29uc3RydWN0LiBHMSA9IHRoZSBmaXJzdCBnZW5lcmF0aW9uIG9mIHRoZSBjcm9zcy5dKENyb3NzaW5nX3NjaGVtZS5wbmcpCgoKIyBEYXRhIGFuYWx5c2lzIGFuZCBzdXBwbGVtZW50YXJ5IHJlc3VsdHMKCgpIZXJlIHdlIGluY2x1ZGUgYWxsIGNvZGUgdXNlZCB0byBydW4gb3VyIGFuYWx5c2lzLCBvdXIgcmF0aW9uYWxlIGJlaGluZCB0aGUgbW9kZWxsaW5nIGFwcHJvYWNoZXMsIGFuZCBhbGwgcmVtYWluaW5nIHN1cHBsZW1lbnRhcnkgdGFibGVzIGFuZCBmaWd1cmVzLgoKIyMjIyBMb2FkIHBhY2thZ2VzLCByZWFkIGluIHRoZSBkYXRhIGFuZCBjcmVhdGUgc29tZSBoZWxwZnVsIGZ1bmN0aW9ucwoKYGBge3J9CgojIGxvYWQgcmVsZXZhbnQgcGFja2FnZXMKCmxpYnJhcnkobG1lNCkgIyBmb3IgdGhlIGxtZXIgYW5kIGdsbWVyIG1peGVkIG1vZGVsIGZ1bmN0aW9ucwpsaWJyYXJ5KGxtZXJUZXN0KSAjIFVzZWQgdG8gZ2V0IHAtdmFsdWVzIGZvciBsbWVyIG1vZGVscyB1c2luZyBzaW11bGF0aW9uLiBJdCBvdmVyLXdyaXRlcyBsbWVyKCkgd2l0aCBhIG5ldyB2ZXJzaW9uLCB3aGljaCBnaXZlcyBwLXZhbHVlcwpsaWJyYXJ5KGdsbW1UTUIpICMgZm9yIHplcm8taW5mbGF0ZWQgb3IgaHVyZGxlIGdsbXMKbGlicmFyeShicm1zKSAjIGZvciBCYXllc2lhbiBtb2RlbHMKbGlicmFyeShjYXIpICMgZm9yIHR5cGUgSUlJIEFub3ZhJ3MKbGlicmFyeShkcGx5cikgIyBkYXRhIHJlLXNoYXBpbmcKbGlicmFyeShNdU1JbikgIyBmb3IgbW9kZWwgc2VsZWN0aW9uIGFuZCBhdmVyYWdpbmcKbGlicmFyeShnZ3Bsb3QyKSAjIGZvciBwbG90cwpsaWJyYXJ5KGdnVGhlbWVBc3Npc3QpICMgYSBwbG90IGZvcm1hdHRpbmcgYWRkIGluCmxpYnJhcnkoZ2dyaWRnZXMpICMgZm9yIGpveSBwbG90cwpsaWJyYXJ5KGdnRXh0cmEpICMgZm9yIGdncGxvdCBlbmhhbmNlbWVudHMgLSBwcmltYXJpbHkgZ2dNYXJnaW5hbCgpCmxpYnJhcnkoZ2dzdGFuY2UpICMgZm9yIGdncGxvdCBlbmhhbmNlbWVudHMgLSBjYW4gY3JlYXRlIG1vcmUgaG9yaXpvbnRhbCBwbG90cwpsaWJyYXJ5KGdncHVicikgIyBmb3IgdGhlIGdnYXJyYW5nZSBmdW5jdGlvbgpsaWJyYXJ5KGdnYmVlc3dhcm0pICMgdmlvbGluIHBsb3RzIHdpdGggZGF0YSBwb2ludHMKbGlicmFyeShnZ1Jlc2lkcGFuZWwpICMgZm9yIG1vZGVsIGFzc3VtcHRpb24gcGxvdHMKbGlicmFyeShrYWJsZUV4dHJhKSAjIG5pY2UgdGFibGVzIHRoYXQgY2FuIHNjcm9sbApsaWJyYXJ5KHBhbmRlcikgIyBtb3JlIG5pY2UgdGFibGVzCmxpYnJhcnkoc3RyaW5ncikgIyBoZWxwcyBidWlsZCBmdW5jdGlvbnMKbGlicmFyeShmb3JjYXRzKSAjIGZvciBjaGFuZ2luZyB0aGUgb3JkZXIgb2YgZmFjdG9ycwpsaWJyYXJ5KGdyb3VwZGF0YTIpICMgZm9yIGFzc2lnbmluZyByb3dzIGluIGRhdGEtZnJhbWVzIHRvIGdyb3VwcwoKIyBSZWFkIGluIGRhdGEgZnJhbWUgYW5kIGFkZCBwaXBldHRlIHRpcCBjb2x1bW4KCmFsbF9kYXRhIDwtIHJlYWQuY3N2KCJtdEROQV9sYXJ2YWxfY29tcGV0aXRpb25fZGF0YS5jc3YiKSAlPiUgCiAgYXJyYW5nZShJbmRpdmlkdWFsKSAlPiUKICBtdXRhdGUoZHVwbGljYXRlID0gc3RyX2V4dHJhY3QoU3RyYWluLCAiWzpkaWdpdDpdIikpICU+JQogIGdyb3VwKG4gPSAyLCBtZXRob2QgPSAiZ3JlZWR5IikgJT4lIHJlbmFtZShQaXBldHRlX3RpcCA9IC5ncm91cHMpCgojIENyZWF0ZSBhIGZ1bmN0aW9uIGZvciBzdGFuZGFyZCBlcnJvciAtIGdlbmVyYWxseSB1c2VmdWwgYW5kIG5lZWRlZCBmb3IgbGF0ZXIKClNFIDwtIGZ1bmN0aW9uKHgpIHNkKHgpL3NxcnQobGVuZ3RoKHgpKQoKIyBoZWxwZXIgZm9yIHNhdmluZyBzdHVmZiBhbmQgbmFtaW5nIHRoZSBmaWxlIG9iamVjdC5yZHMKCnNhdmVfaXQgPC0gZnVuY3Rpb24ob2JqZWN0KXsKICBzYXZlUkRTKGdldChvYmplY3QpLCBmaWxlID0gcGFzdGUob2JqZWN0LCAiLnJkcyIsIHNlcCA9ICIiKSl9CgojIERlZmluZSBhIHN0YW5kYXJkIGRvZGdlIGZvciB0aGUgZXJyb3IgYmFyIHBsb3RzCgpwZCA8LSBwb3NpdGlvbl9kb2RnZSgwLjc1KSAjIG1vdmUgdGhlbSAwLjMgdG8gdGhlIGxlZnQgYW5kIHJpZ2h0CgoKIyBmdW5jdGlvbiBmb3IgZmluZGluZyBDSXMgZm9yIGJpbm9taWFsIGRhdGEKCmdldF9DSXNfZm9yX2Jpbm9taWFsX3RyaWFscyA8LSBmdW5jdGlvbihzdWNjZXNzLCBmYWlsdXJlKXsKICAKICBvdXRwdXQgPC0gYXMuZGF0YS5mcmFtZShtYXRyaXgoTkEsIG5yb3cgPSBsZW5ndGgoc3VjY2VzcyksIG5jb2wgPSA1KSkKICAKICBmb3IoaSBpbiAxOmxlbmd0aChzdWNjZXNzKSl7CiAgICBuIDwtIHN1Y2Nlc3NbaV0gKyBmYWlsdXJlW2ldCiAgICB4IDwtIGJpbm9tLnRlc3Qoc3VjY2Vzc1tpXSwgbikKICAgIG91dHB1dFtpLF0gPC0gYyh4JGVzdGltYXRlLAogICAgICAgICAgICAgICAgICAgIGFzLm51bWVyaWMoeCRjb25mLmludCksCiAgICAgICAgICAgICAgICAgICAgc3FydCh4JGVzdGltYXRlICogKDEteCRlc3RpbWF0ZSkvbiksICMgYmlub21pYWwgU0UgPSBzcXJ0KHAoMS1wKS9uKQogICAgICAgICAgICAgICAgICAgIG4pCiAgfQogIG5hbWVzKG91dHB1dCkgPC0gYygiUHJvcG9ydGlvbiIsICJsb3dlckNJIiwgInVwcGVyQ0kiLCAiU0UiLCAibiIpCiAgb3V0cHV0Cn0KIyBlLmcuIGdldF9DSXNfZm9yX2Jpbm9taWFsX3RyaWFscyhzdXJ2aXZlZCA9IGMoMTAsMTAwKSwgZGllZCA9IGMoNTAsMzApKQoKYGBgCgoKIyMjIyBEYXRhIHByZXBhcmF0aW9uIGZvciBhbGwgcmVzcG9uc2VzCgpgYGB7cn0KCiMgQ2xlYW4gdGhlIGRhdGFzZXQgdXAgZm9yIGFuYWx5c2lzCgojIFNlbGVjdCB0aGUgY29sdW1ucyB3ZSdyZSBpbnRlcmVzdGVkIGluIGFuZCByZW5hbWUgdGhlbQoKZml0bmVzc19kYXRhIDwtIGRwbHlyOjpzZWxlY3QoYWxsX2RhdGEsIEluZGl2aWR1YWwsIEJsb2NrLCBkdXBsaWNhdGUsICBQaXBldHRlX3RpcCwgU2V4LCBGb2NhbC5oYXBsb3R5cGUsIFNvY2lhbC5oYXBsb3R5cGUsIE1vcnRhbGl0eSwgIFNvY2lhbC5TdXJ2aXZhbCwgRGV2ZWxvcG1lbnQudGltZS4uaHJzLiwgRGF5LmVtZXJnZWQsIEhvdXJzLmZyb20ubGlnaHRzLm9uLCBXaW5nLnNpemUuLm1tLiwgRmVtYWxlLm9mZnNwcmluZywgTWFsZS5vZmZzcHJpbmcsIFRvdGFsLmZlbWFsZS5hc3NheSwgVG90YWwucmVkLmFsbC52aWFscywgVG90YWwuYncuYWxsLnZpYWxzKSAlPiUgCiAgcmVuYW1lKEJsb2NrID0gQmxvY2ssIER1cGxpY2F0ZSA9IGR1cGxpY2F0ZSwgRGF5ID0gRGF5LmVtZXJnZWQsIEhvdXJzID0gSG91cnMuZnJvbS5saWdodHMub24sIFN1cnZpdmVkID0gTW9ydGFsaXR5LCBGb2NhbF9oYXBsb3R5cGUgPSBGb2NhbC5oYXBsb3R5cGUsIFNvY2lhbF9oYXBsb3R5cGUgPSBTb2NpYWwuaGFwbG90eXBlLCBTb2NpYWxfc3Vydml2YWwgPSBTb2NpYWwuU3Vydml2YWwsIERldl90aW1lID0gRGV2ZWxvcG1lbnQudGltZS4uaHJzLiwgV2luZ19sZW5ndGggPSBXaW5nLnNpemUuLm1tLiwgTWF0ZXJuYWxfZmVtYWxlX29mZnNwcmluZyA9IEZlbWFsZS5vZmZzcHJpbmcsIE1hdGVybmFsX21hbGVfb2Zmc3ByaW5nID0gTWFsZS5vZmZzcHJpbmcsIE1hdGVybmFsX3RvdGFsX29mZnNwcmluZyA9IFRvdGFsLmZlbWFsZS5hc3NheSwgUGF0ZXJuYWxfZm9jYWxfb2Zmc3ByaW5nID0gVG90YWwucmVkLmFsbC52aWFscywgUGF0bmVyYWxfYndfb2Zmc3ByaW5nID0gVG90YWwuYncuYWxsLnZpYWxzKQoKIyBEZWZpbmUgbmV3IGxldmVscyBmb3IgbW9ydGFsaXR5IHRvIG1ha2UgcmVuYW1pbmcgcG9zc2libGUgCgpsZXZlbHMoZml0bmVzc19kYXRhJFN1cnZpdmVkKSA8LSBjKGxldmVscyhmaXRuZXNzX2RhdGEkU3Vydml2ZWQpLCAiTk8iKQpsZXZlbHMoZml0bmVzc19kYXRhJFN1cnZpdmVkKSA8LSBjKGxldmVscyhmaXRuZXNzX2RhdGEkU3Vydml2ZWQpLCAiWUVTIikKCiMgUmVuYW1lIHRoZSBtb3J0YWxpdHkgcmVzcG9uc2VzCiMgTCBtZWFucyBkaWVkIGFzIGxhcnZhLCBQIG1lYW5zIGRpZWQgYXMgcHVwYWUsIE4gbWVhbnMgZGlkIG5vdCBkaWUgKGkuZS4gZWNsb3NlZCBhcyBhbiBhZHVsdCkKCmZpdG5lc3NfZGF0YSRTdXJ2aXZlZFtmaXRuZXNzX2RhdGEkU3Vydml2ZWQgPT0gJ0wnXSA8LSAnTk8nCmZpdG5lc3NfZGF0YSRTdXJ2aXZlZFtmaXRuZXNzX2RhdGEkU3Vydml2ZWQgPT0gJ1AnXSA8LSAnTk8nCmZpdG5lc3NfZGF0YSRTdXJ2aXZlZFtmaXRuZXNzX2RhdGEkU3Vydml2ZWQgPT0gJ04nXSA8LSAnWUVTJwoKIyBOb3cgdGhhdCBpdCBtYWtlcyBzZW5zZSBjaGFuZ2UgIllFUyIgdG8gMSBhbmQgIk5PIiB0byAwIHNvIHdlIGNhbiBmaXQgYSBiaW5vbWlhbCBHTE0uCgpsZXZlbHMoZml0bmVzc19kYXRhJFN1cnZpdmVkKSA8LSBjKGxldmVscyhmaXRuZXNzX2RhdGEkU3Vydml2ZWQpLCAiMSIpCmxldmVscyhmaXRuZXNzX2RhdGEkU3Vydml2ZWQpIDwtIGMobGV2ZWxzKGZpdG5lc3NfZGF0YSRTdXJ2aXZlZCksICIwIikKCmZpdG5lc3NfZGF0YSRTdXJ2aXZlZFtmaXRuZXNzX2RhdGEkU3Vydml2ZWQgPT0gIllFUyJdIDwtIDEKZml0bmVzc19kYXRhJFN1cnZpdmVkW2ZpdG5lc3NfZGF0YSRTdXJ2aXZlZCA9PSAiTk8iXSA8LSAwCgojIE1ha2UgdGhlIGZhY3RvciBudW1lcmljIAoKZml0bmVzc19kYXRhJFN1cnZpdmVkIDwtIGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKGZpdG5lc3NfZGF0YSRTdXJ2aXZlZCkpCgoKIyBDcmVhdGUgc3BlY2lmaWMgZGF0YXNldHMgZm9yIGVhY2ggZml0bmVzcyB0cmFpdAoKIyBSZW1vdmUgYWxsIHJvd3MgdGhhdCBjb250YWluIGFuIE5BIHZhbHVlIGluIHRoZSBzdXJ2aXZhbCBjb2x1bW4uIFRoZSBOQXMgbWVhbiB0aGluZ3MgbGlrZSB0aGUgR0ZQIHNvcnRpbmcgZGlkIG5vdCB3b3JrLCBvciB0aGUgdmlhbCB3YXMgbmV2ZXIgZXZlbiBzZXQgdXAgZHVlIHRvIGEgc2hvcnRhZ2Ugb2YgbGFydmFlLiBTbyB0aGV5IGFyZSBub3QgbWVhbmluZ2Z1bCBkYXRhLCBhbmQgd2UgcmVtb3ZlIHRoZW0gaGVyZS4gQWxzbyByZW1vdmUgTkEgdmFsdWVzIGluIHRoZSBzb2NpYWwgc3Vydml2YWwgY29sdW1uIGFzIHRoZSBkcmVkZ2UgZnVuY3Rpb24gd29uJ3Qgd29yayB3aXRoIHRoZXNlIGluIHRoZSBkYXRhc2V0LgoKc3Vydml2YWwgPC0gZml0bmVzc19kYXRhICU+JSBmaWx0ZXIoIWlzLm5hKFN1cnZpdmVkKSkgJT4lIGZpbHRlcighaXMubmEoU29jaWFsX3N1cnZpdmFsKSkKICAKIyBSZW1vdmUgYWxsIHJvd3MgdGhhdCBjb250YWluIGFuIE5BIHZhbHVlIGluIHRoZSBkZXZlbG9wbWVudCB0aW1lIGNvbHVtbi4gVGhpcyBpbnN0YW5jZXMgcmVwcmVzZW50IGZsaWVzIHdoZXJlIHdlIGZhaWxlZCB0byBtZWFzdXJlIGRldmVsb3BtZW50IHRpbWUuIAoKbGFydmFsX2RldmVsb3BtZW50IDwtIGZpdG5lc3NfZGF0YSAlPiUgZmlsdGVyKCFpcy5uYShEZXZfdGltZSkpICU+JSBmaWx0ZXIoIWlzLm5hKFNvY2lhbF9zdXJ2aXZhbCkpCgojIFJlbW92ZSBhbGwgcm93cyB0aGF0IGNvbnRhaW4gYW4gTkEgdmFsdWUgaW4gdGhlIHdpbmcgbGVuZ3RoIGNvbHVtbi4gV2luZyBsZW5ndGggd2FzIG5vdCBtZWFzdXJlZCBpbiBCbG9ja3MgMSBhbmQgMi4KCmJvZHlfc2l6ZSA8LSBmaXRuZXNzX2RhdGEgJT4lIGZpbHRlcighaXMubmEoV2luZ19sZW5ndGgpKSAlPiUgZmlsdGVyKCFpcy5uYShTb2NpYWxfc3Vydml2YWwpKQoKIyBSZW1vdmUgYWxsIHJvd3MgdGhhdCBjb250YWluIGFuIE5BIHZhbHVlIGluIHRoZSBmZW1hbGUgcmVwcm9kdWN0aXZlIG91dHB1dCBjb2x1bW4sIGFuZCB3aGVyZSBmZW1hbGVzIGRpZCBub3Qgc3Vydml2ZSB0byBhZHVsdGhvb2QgKGNvZGVkIGFzIHByb2R1Y2luZyAwIG9mZnNwcmluZykuIAoKZmVtYWxlX3JlcHJvZHVjdGl2ZV9vdXRwdXQgPC0gZml0bmVzc19kYXRhICU+JSBmaWx0ZXIoIWlzLm5hKE1hdGVybmFsX3RvdGFsX29mZnNwcmluZyksIFN1cnZpdmVkID09IDEpICU+JSBmaWx0ZXIoIWlzLm5hKFNvY2lhbF9zdXJ2aXZhbCkpCgoKIyBNYWxlIGFkdWx0IGZpdG5lc3MKCiMgRmlyc3QgcmVtb3ZlIGZlbWFsZXMgZnJvbSB0aGUgZGF0YXNldC4KCk1hbGVfZml0bmVzcyA8LSBhbGxfZGF0YSAlPiUgZmlsdGVyKCFpcy5uYShUb3RhbC5yZWQuYWxsLnZpYWxzKSkgCgojIENyZWF0ZSBhbiBvZmZzcHJpbmcgY291bnRlZCBjb2x1bW4gc28gdGhhdCB0aGUgZGF0YSBpcyBjb3JyZWN0bHkgZm9ybWF0dGVkIGZvciBhIGJpbm9taWFsIG1vZGVsLgoKTWFsZV9maXRuZXNzJE9mZnNwcmluZ19jb3VudGVkIDwtIE1hbGVfZml0bmVzcyRUb3RhbC5yZWQuYWxsLnZpYWxzICsgTWFsZV9maXRuZXNzJFRvdGFsLmJ3LmFsbC52aWFscwoKIyBOb3cgbGV0cyByZW1vdmUgdmlhbHMgd2hlcmUgdGhlIGZlbWFsZSBwcm9kdWNlZCAwIG9mZnNwcmluZyAodGhpcyBpbmNsdWRlcyB0cmlhbHMgd2hlcmUgdGhlIG1hbGUgZGllZCBpbiBkZXZlbG9wbWVudCkKCk1hbGVfZml0bmVzcyA8LSBNYWxlX2ZpdG5lc3MgJT4lIGZpbHRlcighKE9mZnNwcmluZ19jb3VudGVkID09IDApKQoKIyBTZWxlY3QgcmVsZXZhbnQgY29sdW1ucyBhbmQgcmVuYW1lIHZhcmlhYmxlcyAKCk1hbGVfZml0bmVzcyA8LSBkcGx5cjo6c2VsZWN0KE1hbGVfZml0bmVzcywgSW5kaXZpZHVhbCwgQmxvY2ssIFBpcGV0dGVfdGlwLCBGb2NhbC5oYXBsb3R5cGUsIFNvY2lhbC5oYXBsb3R5cGUsIFNvY2lhbC5TdXJ2aXZhbCwgIE1vcnRhbGl0eSwgRGV2ZWxvcG1lbnQudGltZS4uaHJzLiwgRGF5LmVtZXJnZWQsIFdpbmcuc2l6ZS4ubW0uLCBIb3Vycy5mcm9tLmxpZ2h0cy5vbiwgVG90YWwucmVkLmFsbC52aWFscywgVG90YWwuYncuYWxsLnZpYWxzLCBPZmZzcHJpbmdfY291bnRlZCwgIFByb3BvcnRpb24ucmVkLmFsbC52aWFscywgZHVwbGljYXRlKSAlPiUgCiAgcmVuYW1lKEZvY2FsX21hbGVfb2Zmc3ByaW5nID0gVG90YWwucmVkLmFsbC52aWFscywgQmxvY2sgPSBCbG9jaywgRGF5ID0gRGF5LmVtZXJnZWQsIEhvdXJzID0gSG91cnMuZnJvbS5saWdodHMub24sIFN1cnZpdmVkID0gTW9ydGFsaXR5LCBGb2NhbF9oYXBsb3R5cGUgPSBGb2NhbC5oYXBsb3R5cGUsIFNvY2lhbF9oYXBsb3R5cGUgPSBTb2NpYWwuaGFwbG90eXBlLCBTb2NpYWxfc3Vydml2YWwgPSBTb2NpYWwuU3Vydml2YWwsIERldl90aW1lID0gRGV2ZWxvcG1lbnQudGltZS4uaHJzLiwgV2luZ19sZW5ndGggPSBXaW5nLnNpemUuLm1tLiwgUHJvcG9ydGlvbl9mb2NhbCA9IFByb3BvcnRpb24ucmVkLmFsbC52aWFscywgQndfb2Zmc3ByaW5nID0gVG90YWwuYncuYWxsLnZpYWxzLCBEdXBsaWNhdGUgPSBkdXBsaWNhdGUpICU+JSAKICBmaWx0ZXIoIWlzLm5hKFNvY2lhbF9zdXJ2aXZhbCkpCgpgYGAKCgojIyBNb2RlbGxpbmcgYXBwcm9hY2gKCldlIGFuYWx5c2VkIHRoZSBkYXRhIHVzaW5nIGdlbmVyYWxpc2VkIGxpbmVhciBtaXhlZCBtb2RlbHMgaW4gdGhlIGBsbWVyYCBwYWNrYWdlIGZvciBSLgoKKipGaXhlZCBlZmZlY3RzKioKCkZvciB0aGUgYW5hbHlzaXMgb2YgZml0bmVzcyB0cmFpdHMgZXhwcmVzc2VkIGluIGJvdGggc2V4ZXMgKHN1cnZpdmFsLCBkZXZlbG9wbWVudCB0aW1lIGFuZCBib2R5IHNpemUpLCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgZWZmZWN0IG9mIGFuIGluZGl2aWR1YWzigJlzIGZvY2FsIG10RE5BLCB0aGUgbXRETkEgb2YgYSBzb2NpYWwgY29tcGV0aXRvciwgdGhlIGVmZmVjdCBvZiBhIHNvY2lhbCBjb21wZXRpdG9ycyBzdWNjZXNzLCBhbmQgdGhlIGVmZmVjdCBvZiBzZXggb24gZml0bmVzcy4gVG8gaWRlbnRpZnkgdGhlc2UgcG90ZW50aWFsIGVmZmVjdHMgZWFjaCBtb2RlbCBjb250YWluZWQgdGhlIGZvbGxvd2luZyBmaXhlZCBlZmZlY3RzLCBhbmQgaW50ZXJhY3Rpb25zIHdoZXJlIGJpb2xvZ2ljYWxseSByZWxldmFudDoKCkZvY2FsIGhhcGxvdHlwZTogdGhlIG10RE5BIGhhcGxvdHlwZSB0aGF0IGFuIGluZGl2aWR1YWwgY2Fycmllcy4KClNvY2lhbCBoYXBsb3R5cGU6IHRoZSBtdEROQSBoYXBsb3R5cGUgdGhhdCBhIHNvY2lhbCBwYXJ0bmVyIGR1cmluZyBsYXJ2YWwgZGV2ZWxvcG1lbnQgY2Fycmllcy4KClNvY2lhbCBzdXJ2aXZhbDogdGhlIHN1cnZpdmFsIG91dGNvbWUgb2YgdGhlIHNvY2lhbCBwYXJ0bmVyLgoKU2V4OiBpcyB0aGUgZm9jYWwgaW5kaXZpZHVhbCBmZW1hbGUgb3IgbWFsZT8gVGhlIHNvY2lhbCBwYXJ0bmVyIHdpbGwgYWx3YXlzIGJlIG9mIHRoZSBvcHBvc2l0ZSBzZXggdG8gdGhlIGZvY2FsIGluZGl2aWR1YWwuCgpXZSBhbHNvIGluY2x1ZGU6CgpEdXBsaWNhdGU6IEVhY2ggaGFwbG90eXBlIGhhcyBiZWVuIGludHJvZ3Jlc3NlZCBhbG9uZ3NpZGUgdGhlIF93XjExMTheXyBudWNsZWFyIGJhY2tncm91bmQgaW4gdHdvIGluZGVwZW5kZW50IGR1cGxpY2F0ZXMuIFdJdGhpbiBlYWNoIGJsb2NrIHdlIHJhbiBtdWx0aXBsZSByZXBsaWNhdGVzIHRoYXQgd2VyZSBzcGxpdCBpbiB0d286IGhhbGYgdXNlZCBvbmx5IGR1cGxpY2F0ZSBvbmUgd2lsbCB0aGUgb3RoZXIgaGFsZiB1c2VkIG9ubHkgZHVwbGljYXRlIHR3by4gVGhpcyBmaXhlZCBlZmZlY3QgYWNjb3VudHMgZm9yIGFueSBudWNsZWFyIGRpZmZlcmVuY2VzIHRoYXQgbWF5IGhhdmUgYXJpc2VuIGJldHdlZW4gZHVwbGljYXRlcy4KCioqUmFuZG9tIGVmZmVjdHMqKgoKQmxvY2s6IGFjY291bnRzIGZvciBkaWZmZXJlbmNlcyBpbiB0aGUgcmVzcG9uc2UgdmFyaWFibGUgYmV0d2VlbiBleHBlcmltZW50YWwgYmxvY2tzIChlLmcuIHRvIHZhcmlhbmNlIGluIHRlbXBlcmF0dXJlIG9yIGNvbXBvc2l0aW9uIG9mIHRoZSBmbHkgZm9vZCkuIEluIG91ciBleHBlcmltZW50IGEgQmxvY2sgY29udGFpbmVkIG11bHRpcGxlIHJlcGxpY2F0ZXMgYW5kIGEgcmVwbGljYXRlIHdhcyBtYWRlIHVwIG9mIDI1IGRpZmZlcmVudCBjZWxscyBlYWNoIGhvdXNpbmcgYSBwYWlyIG9mIGxhcnZhZS4KCioqTW9kZWwgZXZhbHVhdGlvbioqCgpFYWNoIG1vZGVsIHdhcyBldmFsdWF0ZWQgdmlhIEFJQ2MgdmFsdWVzIHVzaW5nIHRoZSBgZHJlZGdlYCBmdW5jdGlvbiwgZnJvbSB0aGUgYE11bWluYCBwYWNrYWdlLiBUaGVyZSB3YXMgcmFyZWx5IGEgc2luZ2xlIG1vZGVsIHRoYXQgd2FzIHVuZXF1aXZvY2FsbHkgdGhlIGJlc3QgZml0IHRvIHRoZSBkYXRhLCBzbyB3ZSBjb25kdWN0ZWQgbW9kZWwgYXZlcmFnaW5nIGZvciB0aGUgc2V0IG9mIG1vZGVscyB3aGVyZSBkZWx0YSB3YXMgPCA2LCBhcyBzdWdnZXN0ZWQgYnkgU3ltb25kcyBhbmQgTW91c3NhbGxpIFstQFJONDU1XS4gVGhlIHByZXNlbnQgc3R1ZHkgaXMgYSBwbGFubmVkIGV4cGVyaW1lbnQgdG8gbWVhc3VyZSB0aGUgZWZmZWN0IG9mIG10RE5BIG9uIGZpdG5lc3MsIHNvIHdlIGRlcml2ZWQgbW9kZWwgZXN0aW1hdGVzIGZyb20gdGhlIGNvbmRpdGlvbmFsIG1vZGVsIGF2ZXJhZ2VzLgoKCiMjIExhcnZhbCBmaXRuZXNzIG1lYXN1cmVzCgoKIyMjIEVnZyB0byBhZHVsdCB2aWFiaWxpdHkgYW5hbHlzaXMKCldlIGZpdCBhIGdsbSB3aXRoIGJpbm9taWFsIGVycm9ycyB0byBtb2RlbCBzdXJ2aXZhbAoKVGhlIG1vZGVsOgoKKipTdXJ2aXZlZCB+IEZvY2FsX2hhcGxvdHlwZSAqIFNvY2lhbF9oYXBsb3R5cGUgKiBTZXggKyBEdXBsaWNhdGUgKyAoMXxCbG9jaykgKyAoMXxQaXBldHRlX3RpcCkqKgoKYGBge3J9CgojIEZpdCB0aGUgZ2xvYmFsIG1vZGVsCgpzdXJ2aXZhbF9tb2RlbCA8LSBsbWU0OjpnbG1lcihTdXJ2aXZlZCB+IEZvY2FsX2hhcGxvdHlwZSAqIFNvY2lhbF9oYXBsb3R5cGUgKiBTZXggKyBmYWN0b3IoRHVwbGljYXRlKSArICgxfEJsb2NrKSArICgxfFBpcGV0dGVfdGlwKSwgZGF0YSA9IHN1cnZpdmFsLCBmYW1pbHkgPSAiYmlub21pYWwiLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJOZWxkZXJfTWVhZCIsIG9wdEN0cmw9bGlzdChtYXhmdW49MTAwMDAwKSksIG5hLmFjdGlvbiA9IG5hLmZhaWwpCgpgYGAKCiMjIyMgTW9kZWwgZXZhbHVhdGlvbgoKKipUYWJsZSBTMSoqOiBFdmFsdWF0aW9uIG9mIHRoZSBzdXJ2aXZvcnNoaXAgbW9kZWwuIEFsbCBwb3NzaWJsZSBtb2RlbHMgd2VyZSBldmFsdWF0ZWQgZnJvbSB0aGUgZ2xvYmFsIG1vZGVsIHRoYXQgaW5jbHVkZWQgYSB0aHJlZS13YXkgaW50ZXJhY3Rpb24gYmV0d2VlbiBmb2NhbCBoYXBsb3R5cGUsIHNvY2lhbCBoYXBsb3R5cGUgYW5kIHNvY2lhbCBzdXJ2aXZhbCwgdGhlIHN0YW5kIGFsb25lIGZpeGVkIGVmZmVjdHMgc2V4IGFuZCBkdXBsY2lhdGUsIGFzIHdlbGwgYXMgdGhlIHJhbmRvbSBmYWN0b3IgYmxvY2suIEFzIHRoZXJlIHdhcyBubyBjbGVhciB0b3AgbW9kZWwsIHRoZSBmaW5hbCBtb2RlbCB3YXMgY2FsY3VsYXRlZCB2aWEgbW9kZWwgYXZlcmFnaW5nLgpgYGB7cn0KCiMgQ29tcGFyZSBhbGwgcG9zc2libGUgY29tYmluYXRpb25zIG9mIG1vZGVscyAoZnJvbSB0aGUgZ2xvYmFsIG1vZGVsKQoKaWYoZmlsZS5leGlzdHMoInN1cnZpdmFsX2RyZWRnZS5yZHMiKSl7ICMgSWYgYWxyZWFkeSBkb25lLCBqdXN0IGxvYWQgdGhlIHJlc3VsdHMKICBzdXJ2aXZhbF9kcmVkZ2UgPC0gcmVhZFJEUygic3Vydml2YWxfZHJlZGdlLnJkcyIpCn0gZWxzZSB7c3Vydml2YWxfZHJlZGdlIDwtIGRyZWRnZShzdXJ2aXZhbF9tb2RlbCkgICAgICAgICAgICAgICAgICAjIElmIG5vdCBhbHJlYWR5IGRvbmUsIHJ1biBhbGwgdGhlIG1vZGVscyBhbmQgc2F2ZSB0aGUgcmVzdWx0cwpsYXBwbHkoYygic3Vydml2YWxfZHJlZGdlIiksIHNhdmVfaXQpCn0KCgpzdXJ2aXZhbF90YWJsZSA8LSBzdWJzZXQoc3Vydml2YWxfZHJlZGdlLCBkZWx0YSA8IDYsIHJlY2FsYy53ZWlnaHRzID0gRkFMU0UpICU+JSBhcy5kYXRhLmZyYW1lKCkKCm5hbWVzKHN1cnZpdmFsX3RhYmxlKVtuYW1lcyhzdXJ2aXZhbF90YWJsZSkgPT0gIihJbnRlcmNlcHQpIl0gPC0gIkludGVyY2VwdCIKbmFtZXMoc3Vydml2YWxfdGFibGUpW25hbWVzKHN1cnZpdmFsX3RhYmxlKSA9PSAiZmFjdG9yKER1cGxpY2F0ZSkiXSA8LSAiRHVwbGljYXRlIgpuYW1lcyhzdXJ2aXZhbF90YWJsZSlbbmFtZXMoc3Vydml2YWxfdGFibGUpID09ICJGb2NhbF9oYXBsb3R5cGUiXSA8LSAiRm9jYWwgaGFwbG90eXBlIgpuYW1lcyhzdXJ2aXZhbF90YWJsZSlbbmFtZXMoc3Vydml2YWxfdGFibGUpID09ICJTZXgiXSA8LSAiU2V4IgpuYW1lcyhzdXJ2aXZhbF90YWJsZSlbbmFtZXMoc3Vydml2YWxfdGFibGUpID09ICJTb2NpYWxfaGFwbG90eXBlIl0gPC0gIlNvY2lhbCBoYXBsb3R5cGUiCm5hbWVzKHN1cnZpdmFsX3RhYmxlKVtuYW1lcyhzdXJ2aXZhbF90YWJsZSkgPT0gIkZvY2FsX2hhcGxvdHlwZTpTZXgiXSA8LSAiRm9jYWwgaGFwbG90eXBlIHggU2V4IgpuYW1lcyhzdXJ2aXZhbF90YWJsZSlbbmFtZXMoc3Vydml2YWxfdGFibGUpID09ICJGb2NhbF9oYXBsb3R5cGU6U29jaWFsX2hhcGxvdHlwZSJdIDwtICJGb2NhbCBoYXBsb3R5cGUgeCBTb2NpYWwgaGFwbG90eXBlIgpuYW1lcyhzdXJ2aXZhbF90YWJsZSlbbmFtZXMoc3Vydml2YWxfdGFibGUpID09ICJTb2NpYWxfaGFwbG90eXBlOlNleCJdIDwtICJTb2NpYWwgaGFwbG90eXBlIHggU2V4IgpuYW1lcyhzdXJ2aXZhbF90YWJsZSlbbmFtZXMoc3Vydml2YWxfdGFibGUpID09ICJGb2NhbF9oYXBsb3R5cGU6U29jaWFsX2hhcGxvdHlwZTpTZXgiXSA8LSAiRm9jYWwgaGFwbG90eXBlIHggU29jaWFsIGhhcGxvdHlwZSB4IFNleCIKbmFtZXMoc3Vydml2YWxfdGFibGUpW25hbWVzKHN1cnZpdmFsX3RhYmxlKSA9PSAiZGYiXSA8LSAiRGVncmVlcyBvZiBmcmVlZG9tIgpuYW1lcyhzdXJ2aXZhbF90YWJsZSlbbmFtZXMoc3Vydml2YWxfdGFibGUpID09ICJsb2dMaWsiXSA8LSAiTG9nIGxpa2VsaWhvb2QiCm5hbWVzKHN1cnZpdmFsX3RhYmxlKVtuYW1lcyhzdXJ2aXZhbF90YWJsZSkgPT0gIkFJQ2MiXSA8LSAiQUlDYyIKbmFtZXMoc3Vydml2YWxfdGFibGUpW25hbWVzKHN1cnZpdmFsX3RhYmxlKSA9PSAiZGVsdGEiXSA8LSAiRGVsdGEiCm5hbWVzKHN1cnZpdmFsX3RhYmxlKVtuYW1lcyhzdXJ2aXZhbF90YWJsZSkgPT0gIndlaWdodCJdIDwtICJXZWlnaHQiCgpwYW5kZXIoc3Vydml2YWxfdGFibGUsIHNwbGl0LmNlbGwgPSA0MCwgc3BsaXQudGFibGUgPSBJbmYpCmBgYAoKIyMjIyBNb2RlbCBhdmVyYWdpbmcKCgoqKlRhYmxlIDEqKjogQ29uZGl0aW9uYWwgbW9kZWwgY29lZmZpY2llbnRzLCBzdGFuZGFyZCBlcnJvciBhbmQgOTUlIGNvbmZpZGVuY2UgbGltaXRzIGFyZSBzaG93biBmb3IgdGhlIHN1cnZpdm9yc2hpcCB0byBhZHVsdGhvb2QgYXZlcmFnZWQgbW9kZWwuIEJvbGQgcm93cyBpbmRpY2F0ZSBzaWduZmljYW50IGVmZmVjdHMuCmBgYHtyfQoKIyBhdmVyYWdlIHRoZSBtb2RlbHMgd2l0aCBkZWx0YSA8IDYKClN1cnZpdmFsX2F2ZyA8LSBtb2RlbC5hdmcoc3Vydml2YWxfZHJlZGdlLCBzdWJzZXQgPSBkZWx0YSA8IDYpCgpzdXJ2aXZhbF9DSXMgPC0gY29uZmludChtb2RlbC5hdmcoc3Vydml2YWxfZHJlZGdlLCBzdWJzZXQgPSBkZWx0YSA8IDYpKSAlPiUgYXMuZGF0YS5mcmFtZSgpCgpzdXJ2aXZhbF9lc3RpbWF0ZSA8LSBjb2VmVGFibGUobW9kZWwuYXZnKHN1cnZpdmFsX2RyZWRnZSwgc3Vic2V0ID0gZGVsdGEgPCA2KSkgJT4lIGFzLmRhdGEuZnJhbWUoKQoKc3Vydml2YWxfbW9kZWxfYXZnIDwtIGRhdGEuZnJhbWUoc3Vydml2YWxfZXN0aW1hdGUsIHN1cnZpdmFsX0NJcykgJT4lIHNlbGVjdChFc3RpbWF0ZSwgU3RkLi5FcnJvciwgIFgyLjUuLiwgWDk3LjUuLikKCm5hbWVzKHN1cnZpdmFsX21vZGVsX2F2ZylbbmFtZXMoc3Vydml2YWxfbW9kZWxfYXZnKSA9PSAiRXN0aW1hdGUiXSA8LSAiQ29uZGl0aW9uYWwgYXZlcmFnZSBlc3RpbWF0ZSIKbmFtZXMoc3Vydml2YWxfbW9kZWxfYXZnKVtuYW1lcyhzdXJ2aXZhbF9tb2RlbF9hdmcpID09ICJTdGQuLkVycm9yIl0gPC0gIlN0YW5kYXJkIEVycm9yIgpuYW1lcyhzdXJ2aXZhbF9tb2RlbF9hdmcpW25hbWVzKHN1cnZpdmFsX21vZGVsX2F2ZykgPT0gIlgyLjUuLiJdIDwtICIyLjUlIEludGVydmFsIgpuYW1lcyhzdXJ2aXZhbF9tb2RlbF9hdmcpW25hbWVzKHN1cnZpdmFsX21vZGVsX2F2ZykgPT0gIlg5Ny41Li4iXSA8LSAiOTcuNSUgSW50ZXJ2YWwiCgoKcGFuZGVyKHN1cnZpdmFsX21vZGVsX2F2Zywgc3BsaXQuY2VsbCA9IDQwLCBzcGxpdC50YWJsZSA9IEluZiwgZW1waGFzaXplLnN0cm9uZy5yb3dzID0gKDIpKQoKIyBUaGUgZnVsbCBhdmVyYWdlIHByb3ZpZGVzIGEgcGFyYW1ldGVyIGF2ZXJhZ2UgYWNyb3NzIGFsbCBtb2RlbHMgY29uc2lkZXJlZCwgaW5jbHVkaW5nIG9uZXMgd2hlcmUgdGhlIHBhcmFtZXRlciBjb2VmZmljaWVudCBpcyBzZXQgdG8gMC4gVGhlIGNvbmRpdGlvbmFsIGF2ZXJhZ2UgcmVwb3J0cyBjb2VmZmljZW50cyBmb3Igb25seSB0aGUgbW9kZWxzIHdoZXJlIHRoZSBwYXJhbWV0ZXIgaXMgaW5jbHVkZWQuCgpgYGAKCgpgYGB7ciwgZXZhbCA9IEZBTFNFfQpzdXJ2aXZhbF9wbG90X2RhdGEgPC0gc3Vydml2YWwgJT4lIAogIG11dGF0ZShTb2NpYWxfc3Vydml2YWwgPSByZXBsYWNlKGFzLmNoYXJhY3RlcihTb2NpYWxfc3Vydml2YWwpLCBTb2NpYWxfc3Vydml2YWwgPT0gIkwiLCAiRGllZCBhcyBsYXJ2YSIpLAogICAgICAgIFNvY2lhbF9zdXJ2aXZhbCA9IHJlcGxhY2UoYXMuY2hhcmFjdGVyKFNvY2lhbF9zdXJ2aXZhbCksIFNvY2lhbF9zdXJ2aXZhbCA9PSAiUCIsICJEaWVkIGFzIHB1cGEiKSwKICAgICAgICAgU29jaWFsX3N1cnZpdmFsID0gcmVwbGFjZShhcy5jaGFyYWN0ZXIoU29jaWFsX3N1cnZpdmFsKSwgU29jaWFsX3N1cnZpdmFsID09ICJOIiwgIlN1cnZpdmVkIHRvIGFkdWx0aG9vZCIpKQoKCnN1cnZpdmFsX3Bsb3Rfc3VtbWFyeSA8LSBzdXJ2aXZhbF9wbG90X2RhdGEgJT4lIAogIGRwbHlyOjpncm91cF9ieShTb2NpYWxfc3Vydml2YWwpICU+JQogIGRwbHlyOjpzdW1tYXJpc2UobnVtYmVyX3N1cnZpdmluZyA9IHN1bShTdXJ2aXZlZCksIG51bWJlcl9kaWVkID0gc3VtKFN1cnZpdmVkID09IDApKSAlPiUKICBhcy5kYXRhLmZyYW1lKCkKCnN1cnZpdmFsX0NJcyA8LSBnZXRfQ0lzX2Zvcl9iaW5vbWlhbF90cmlhbHMoc3Vydml2YWxfcGxvdF9zdW1tYXJ5JG51bWJlcl9zdXJ2aXZpbmcsIHN1cnZpdmFsX3Bsb3Rfc3VtbWFyeSRudW1iZXJfZGllZCkgJT4lIHJlbmFtZShTdXJ2aXZlZCA9IFByb3BvcnRpb24pCgpzdXJ2aXZhbF9wbG90X3N1bW1hcnkgPC0gY2JpbmQoc3Vydml2YWxfcGxvdF9zdW1tYXJ5LCBzdXJ2aXZhbF9DSXMpCgpzdXJ2aXZhbF9wbG90X2RhdGEgJT4lCiAgZ2dwbG90KGFlcyh4ID0gU29jaWFsX3N1cnZpdmFsLCB5ID0gU3Vydml2ZWQsIGZpbGwgPSBTb2NpYWxfc3Vydml2YWwsIGNvbG91ciA9IFNvY2lhbF9zdXJ2aXZhbCkpICsKICAjZ2VvbV9xdWFzaXJhbmRvbShkYXRhID0gc3Vydml2YWxfcGxvdF9kYXRhLCB3aWR0aCA9IDAuNSwgYWxwaGEgPSAgMC41KSArCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjKCJEaWVkIGFzIGxhcnZhIiA9ICIjYTUwZjE1IiwgIkRpZWQgYXMgcHVwYSIgPSAiI2ZlOTkyOSIsICJTdXJ2aXZlZCB0byBhZHVsdGhvb2QiID0gIiM0MWI2YzQiKSkgKwogIGdlb21fcG9pbnQoZGF0YSA9IHN1cnZpdmFsX3Bsb3Rfc3VtbWFyeSwgYWVzKHggPSBTb2NpYWxfc3Vydml2YWwsIHkgPSBTdXJ2aXZlZCksIHNpemUgPSAzLCBjb2xvdXI9J2JsYWNrJykgKwogIGdlb21fZXJyb3JiYXIoZGF0YSA9IHN1cnZpdmFsX3Bsb3Rfc3VtbWFyeSwgYWVzKHggPSBTb2NpYWxfc3Vydml2YWwsIHltYXggPSB1cHBlckNJLCB5bWluID0gbG93ZXJDSSwgd2lkdGggPSAwKSwgY29sb3VyID0gImJsYWNrIikgKwogIGxhYnMoeCA9ICJTdXJ2aXZhbCBvdXRjb21lIG9mIHNvY2lhbCBwYXJ0bmVyIiwgeSA9ICJQcm9wb3J0aW9uIG9mIGxhcnZhZSBzdXJ2aXZpbmcgdG8gYWR1bHRob29kIikgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvci54ID0gZWxlbWVudF9ibGFuaygpKQoKIyoqRmlndXJlIDE6KiogU3Vydml2b3JzaGlwIHRvIGFkdWx0aG9vZCBpcyBhZmZlY3RlZCBieSB0aGUgc3VjY2VzcyBvZiBhIHNvY2lhbCBwYXJ0bmVyLiBCbGFjayBwb2ludHMgc2hvdyB0aGUgbWVhbiBwcm9wb3J0aW9uIG9mIGxhcnZhZSB0aGF0IHN1Y2Nlc3NmdWxseSBlY2xvc2VkLCB3aXRoIDk1JSBjb25maWRlbmNlIGxpbWl0cy4gCmBgYAoKCgpgYGB7cn0Kc3Vydml2YWxfbXRETkFfc3VtbWFyeSA8LSBzdXJ2aXZhbCAlPiUgCiAgZHBseXI6Omdyb3VwX2J5KEZvY2FsX2hhcGxvdHlwZSkgJT4lCiAgZHBseXI6OnN1bW1hcmlzZShudW1iZXJfc3Vydml2aW5nID0gc3VtKFN1cnZpdmVkKSwgbnVtYmVyX2RpZWQgPSBzdW0oU3Vydml2ZWQgPT0gMCkpICU+JQogIGFzLmRhdGEuZnJhbWUoKQoKc3Vydml2YWxfbXRETkFfQ0lzIDwtIGdldF9DSXNfZm9yX2Jpbm9taWFsX3RyaWFscyhzdXJ2aXZhbF9tdEROQV9zdW1tYXJ5JG51bWJlcl9zdXJ2aXZpbmcsIHN1cnZpdmFsX210RE5BX3N1bW1hcnkkbnVtYmVyX2RpZWQpICU+JSByZW5hbWUoU3Vydml2ZWQgPSBQcm9wb3J0aW9uKQoKc3Vydml2YWxfbXRETkFfc3VtbWFyeSA8LSBjYmluZChzdXJ2aXZhbF9tdEROQV9zdW1tYXJ5LCBzdXJ2aXZhbF9tdEROQV9DSXMpCgpzdXJ2aXZhbF9tdEROQV9zdW1tYXJ5ICU+JQogIGdncGxvdChhZXMoeCA9IEZvY2FsX2hhcGxvdHlwZSwgeSA9IFN1cnZpdmVkLCBmaWxsID0gRm9jYWxfaGFwbG90eXBlLCBjb2xvdXIgPSBGb2NhbF9oYXBsb3R5cGUpKSArCiAgI2dlb21fcXVhc2lyYW5kb20oZGF0YSA9IHN1cnZpdmFsX3Bsb3RfZGF0YSwgd2lkdGggPSAwLjUsIGFscGhhID0gIDAuNSkgKwogICNzY2FsZV9jb2xvdXJfbWFudWFsKHZhbHVlcyA9IGMoIkJhcmNlbG9uYSIgPSAiI2E1MGYxNSIsICJCcm93bnN2aWxsZSIgPSAiI2ZlOTkyOSIsICJEYWhvbWV5IiA9ICIjNDFiNmM0IiwgIklzcmFlbCIgPSAiIzIzODQ0MyIgLCAiU3dlZGVuIiA9ICIjNGExNDg2IikpICsKICBnZW9tX3BvaW50KGRhdGEgPSBzdXJ2aXZhbF9tdEROQV9zdW1tYXJ5LCBhZXMoeCA9IEZvY2FsX2hhcGxvdHlwZSwgeSA9IFN1cnZpdmVkKSwgc2l6ZSA9IDMsIGNvbG91cj0nYmxhY2snKSArCiAgZ2VvbV9lcnJvcmJhcihkYXRhID0gc3Vydml2YWxfbXRETkFfc3VtbWFyeSwgYWVzKHggPSBGb2NhbF9oYXBsb3R5cGUsIHltYXggPSB1cHBlckNJLCB5bWluID0gbG93ZXJDSSwgd2lkdGggPSAwKSwgY29sb3VyID0gImJsYWNrIikgKwogIGxhYnMoeCA9ICJtdEROQSBoYXBsb3R5cGUiLCB5ID0gIlByb3BvcnRpb24gb2YgbGFydmFlIHN1cnZpdmluZyB0byBhZHVsdGhvb2QiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsKICB0aGVtZShwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCkpCmBgYAoKKipGaWd1cmUgMToqKiBUaGUgYmxhY2sgcG9pbnRzIHNob3cgdGhlIG1lYW4gcHJvcG9ydGlvbiBvZiBsYXJ2YWUgc3Vydml2aW5nIHRvIGVjbG9zZSBmb3IgZWFjaCBtdEROQSBoYXBsb3R5cGUgYW5kIGl0cyA5NSUgY29uZmlkZW5jZSBsaW1pdHMuCgpjaGVjayB0aGVzZSBjb25maWRlbmNlIGludGVydmFscwoKIyMjIERldmVsb3BtZW50IHRpbWUgYW5hbHlzaXMKCgpgYGB7cn0KCmRlbnNpdHlfZGV2ZWxvcG1lbnRfcGxvdCA8LSBnZ3Bsb3QobGFydmFsX2RldmVsb3BtZW50KSsKICBzdGF0X2RlbnNpdHlfcmlkZ2VzKGFlcyh4PURldl90aW1lLCB5ID0gTkEsIGZpbGwgPSBTZXgpLCBhbHBoYSA9IDAuNywgc2NhbGUgPSAxMiwgcG9zaXRpb24gPSBwb3NpdGlvbl9udWRnZSh5ID0gLTAuNSksIHNob3cubGVnZW5kID0gVCkgKwogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IDIzOCwgbGluZXR5cGUgPSAyKSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gMjYyLCBsaW5ldHlwZSA9IDIpICsKICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAyODYsIGxpbmV0eXBlID0gMikgKwogIHhsYWIoIkVnZy10by1hZHVsdCBkZXZlbG9wbWVudCB0aW1lIChob3VycykiKSArCiAgeWxhYigiS2VybmVsIGRlbnNpdHkgZXN0aW1hdGUiKSArCiAgdGhlbWVfYncoKSsKICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygiRiIgPSAiI2U0MWExYyIsICJNIiA9ICIjMzc3ZWI4IiksIGxhYmVscyA9IGMoIkZlbWFsZSIsICJNYWxlIikpICsKICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYygyMjAsIDMxMCksIGJyZWFrcyA9IGMoMjIwLCAyMzAsIDI0MCwgMjUwLCAyNjAsIDI3MCwgMjgwLCAyOTAsIDMwMCwgMzEwKSkgKwogIHNjYWxlX3lfZGlzY3JldGUoZXhwYW5kID0gYyguMCwwLjApKSsKICB0aGVtZShwYW5lbC5zcGFjaW5nID0gdW5pdCgwLjEsICJsaW5lcyIpLAogICAgICAgIHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZT0xNiksCiAgICAgICAgcGFuZWwuYm9yZGVyPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy5saW5lPWVsZW1lbnRfbGluZSgpLCAKICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50ZXh0Lnk9ZWxlbWVudF9ibGFuaygpLAogICAgICAgIGF4aXMudGlja3MueT1lbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41LCBzaXplID0gMTQpKQpkZW5zaXR5X2RldmVsb3BtZW50X3Bsb3QKCmBgYAoKKipGaWd1cmUgUzIqKjogVGhlIGRpc3RyaWJ1dGlvbiBvZiBlZ2ctdG8tYWR1bHQgZGV2ZWxvcG1lbnQgdGltZSwgc3BsaXQgYnkgc2V4LiBEYXNoZWQgbGluZXMgaW5kaWNhdGUgd2hlbiBsaWdodHMgd2VyZSB0dXJuZWQgZWFjaCBtb3JuaW5nIGFuZCBoaWdobGlnaHQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGxpZ2h0IGFuZCBlY2xvc2lvbi4KClRoZSByZXNwb25zZSB2YXJpYWJsZSBoYXMgYSB0cmltb2RhbCBkaXN0cmlidXRpb24sIHRoYXQgY2FuIGJlIHBvdGVudGlhbGx5IGV4cGxhaW5lZCBieSB0aGUgbGFiJ3MgYXJ0aWZpY2lhbCBkYXktbmlnaHQgY3ljbGUuIFdoZW4gdGhlIGxpZ2h0cyB0dXJuIG9uIGF0IDdhbSwgZWNsb3Npb24gaXMgc3RpbXVsYXRlZC4KClRoZSBtb2RlbDoKCioqRGV2X3RpbWUgfiBGb2NhbF9oYXBsb3R5cGUgKiBTb2NpYWxfaGFwbG90eXBlICogU2V4ICsgRHVwbGljYXRlICsgKDF8QmxvY2spICsgKDF8UGlwZXR0ZV90aXApKioKCmBgYHtyfQoKIyBGaXQgdGhlIGxpbmVhciBtb2RlbAoKbGluZWFyX2Rldl9tb2RlbCA8LSBsbWVyKERldl90aW1lIH4gRm9jYWxfaGFwbG90eXBlICogU29jaWFsX2hhcGxvdHlwZSAqIFNleCArIGZhY3RvcihEdXBsaWNhdGUpICsgKDF8QmxvY2spICsgKDF8UGlwZXR0ZV90aXApLCBsYXJ2YWxfZGV2ZWxvcG1lbnQsIG5hLmFjdGlvbiA9IG5hLmZhaWwsIFJFTUwgPSBGQUxTRSkKCmBgYAoKTGV0cyBoYXZlIGEgbG9vayBhdCBtb2RlbCBkaWFnbm9zdGljcwoKYGBge3J9CnJlc2lkX3BhbmVsKGxpbmVhcl9kZXZfbW9kZWwpCmBgYAoKRGVzcGl0ZSB0aGUgZGF0YSBiZWluZyB0cmltb2RhbCwgdGhlIGxpbmVhciBtb2RlbCBhcHBlYXJzIHRvIGZpdCB0aGUgZGF0YSBhZGVxdWF0ZWx5LiBUaGUgcmVzaWR1YWxzIHZzIGZpdHRlZCBwbG90IGluZGljYXRlcyB0aGF0IHRoZSBtZWFuIGFuZCB2YXJpYW5jZSBzaGFyZSBubyByZWxhdGlvbnNoaXAuIFRoZSBRLVEgUGxvdCBzaG93cyB0aGF0IHBvaW50cyBmYWxsIG9mZiBhdCB0aGUgZXh0cmVtZXMsIGJ1dCBnZW5lcmFsbHkgY29uZm9ybSB0byBhIGxpbmVhciBwYXR0ZXJuLgoKIyMjIyBNb2RlbCBldmFsdWF0aW9uCgoqKlRhYmxlIFMyKio6IEV2YWx1YXRpb24gb2YgdGhlIGRldmVsb3BtZW50IHRpbWUgbW9kZWwuIEFsbCBwb3NzaWJsZSBtb2RlbHMgd2VyZSBldmFsdWF0ZWQgZnJvbSB0aGUgZ2xvYmFsIG1vZGVsIHRoYXQgaW5jbHVkZWQgYSB0aHJlZS13YXkgaW50ZXJhY3Rpb24gYmV0d2VlbiBmb2NhbCBoYXBsb3R5cGUsIHNvY2lhbCBoYXBsb3R5cGUgYW5kIHNvY2lhbCBzdXJ2aXZhbCwgdGhlIHN0YW5kIGFsb25lIGZpeGVkIGVmZmVjdHMgc2V4IGFuZCBkdXBsY2lhdGUsIGFzIHdlbGwgYXMgdGhlIHJhbmRvbSBmYWN0b3IgYmxvY2suICBBcyB0aGVyZSB3YXMgbm8gY2xlYXIgdG9wIG1vZGVsLCB0aGUgZmluYWwgbW9kZWwgd2FzIGNhbGN1bGF0ZWQgdmlhIG1vZGVsIGF2ZXJhZ2luZy4KYGBge3J9CiMgVXNlIGRyZWRnZSB0byBjb21wYXJlIGFsbCBwb3NzaWJsZSBtb2RlbHMgZGVyaXZlZCBmcm9tIHRoZSBnbG9iYWwgbW9kZWwKCkRldl90aW1lX2xpbmVhcl9kcmVkZ2UgPC0gZHJlZGdlKGxpbmVhcl9kZXZfbW9kZWwsIGV4dHJhID0gIlJeMiIpCgpkZXZlbG9wbWVudF90YWJsZSA8LSBzdWJzZXQoRGV2X3RpbWVfbGluZWFyX2RyZWRnZSwgZGVsdGEgPCA2LCByZWNhbGMud2VpZ2h0cyA9IEZBTFNFKSAgJT4lIGFzLmRhdGEuZnJhbWUoKQoKbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpW25hbWVzKGRldmVsb3BtZW50X3RhYmxlKSA9PSAiKEludGVyY2VwdCkiXSA8LSAiSW50ZXJjZXB0IgpuYW1lcyhkZXZlbG9wbWVudF90YWJsZSlbbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpID09ICIoZmFjdG9yKER1cGxpY2F0ZSkpIl0gPC0gIkR1cGxpY2F0ZSIKbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpW25hbWVzKGRldmVsb3BtZW50X3RhYmxlKSA9PSAiRm9jYWxfaGFwbG90eXBlIl0gPC0gIkZvY2FsIGhhcGxvdHlwZSIKbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpW25hbWVzKGRldmVsb3BtZW50X3RhYmxlKSA9PSAiU29jaWFsX2hhcGxvdHlwZSJdIDwtICJTb2NpYWwgaGFwbG90eXBlIgpuYW1lcyhkZXZlbG9wbWVudF90YWJsZSlbbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpID09ICJGb2NhbF9oYXBsb3R5cGU6U2V4Il0gPC0gIkZvY2FsIGhhcGxvdHlwZSB4IFNleCIKbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpW25hbWVzKGRldmVsb3BtZW50X3RhYmxlKSA9PSAiRm9jYWxfaGFwbG90eXBlOlNvY2lhbF9oYXBsb3R5cGUiXSA8LSAiRm9jYWwgaGFwbG90eXBlIHggU29jaWFsIGhhcGxvdHlwZSIKbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpW25hbWVzKGRldmVsb3BtZW50X3RhYmxlKSA9PSAiU29jaWFsX2hhcGxvdHlwZTpTZXgiXSA8LSAiU29jaWFsIGhhcGxvdHlwZSB4IFNleCIKbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpW25hbWVzKGRldmVsb3BtZW50X3RhYmxlKSA9PSAiRm9jYWxfaGFwbG90eXBlOlNvY2lhbF9oYXBsb3R5cGU6U2V4Il0gPC0gIkZvY2FsIGhhcGxvdHlwZSB4IFNvY2lhbCBoYXBsb3R5cGUgeCBTZXgiCm5hbWVzKGRldmVsb3BtZW50X3RhYmxlKVtuYW1lcyhkZXZlbG9wbWVudF90YWJsZSkgPT0gImRmIl0gPC0gIkRlZ3JlZXMgb2YgZnJlZWRvbSIKbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpW25hbWVzKGRldmVsb3BtZW50X3RhYmxlKSA9PSAibG9nTGlrIl0gPC0gIkxvZyBsaWtlbGlob29kIgpuYW1lcyhkZXZlbG9wbWVudF90YWJsZSlbbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpID09ICJBSUNjIl0gPC0gIkFJQ2MiCm5hbWVzKGRldmVsb3BtZW50X3RhYmxlKVtuYW1lcyhkZXZlbG9wbWVudF90YWJsZSkgPT0gImRlbHRhIl0gPC0gIkRlbHRhIgpuYW1lcyhkZXZlbG9wbWVudF90YWJsZSlbbmFtZXMoZGV2ZWxvcG1lbnRfdGFibGUpID09ICJ3ZWlnaHQiXSA8LSAiV2VpZ2h0IgoKcGFuZGVyKGRldmVsb3BtZW50X3RhYmxlLCBzcGxpdC5jZWxsID0gNDAsIHNwbGl0LnRhYmxlID0gSW5mKQoKYGBgCgojIyMjIE1vZGVsIGF2ZXJhZ2luZwoKKipUYWJsZSAyOioqIENvbmRpdGlvbmFsIG1vZGVsIGNvZWZmaWNpZW50cywgc3RhbmRhcmQgZXJyb3IgYW5kIDk1JSBjb25maWRlbmNlIGxpbWl0cyBhcmUgc2hvd24gZm9yIHRoZSBlZ2ctdG8tYWR1bHQgZGV2ZWxvcG1lbnQgdGltZSBhdmVyYWdlZCBtb2RlbC4gQm9sZCByb3dzIGluZGljYXRlIHNpZ25maWNhbnQgZWZmZWN0cy4KYGBge3J9CiMgTW9kZWwgYXZlcmFnaW5nCgpEZXZfdGltZV9hdmcgPC0gKG1vZGVsLmF2ZyhEZXZfdGltZV9saW5lYXJfZHJlZGdlLCBzdWJzZXQgPSBkZWx0YSA8IDYpKQoKRGV2X0NJcyA8LSBjb25maW50KG1vZGVsLmF2ZyhEZXZfdGltZV9saW5lYXJfZHJlZGdlLCBzdWJzZXQgPSBkZWx0YSA8IDYpKSAlPiUgYXMuZGF0YS5mcmFtZSgpCgpEZXZfZXN0aW1hdGUgPC0gY29lZlRhYmxlKG1vZGVsLmF2ZyhEZXZfdGltZV9saW5lYXJfZHJlZGdlLCBzdWJzZXQgPSBkZWx0YSA8IDYpKSAlPiUgYXMuZGF0YS5mcmFtZSgpCgpEZXZfbW9kZWxfYXZnIDwtIGRhdGEuZnJhbWUoRGV2X2VzdGltYXRlLCBEZXZfQ0lzKSAlPiUgc2VsZWN0KEVzdGltYXRlLCBTdGQuLkVycm9yLCAgWDIuNS4uLCBYOTcuNS4uKQoKbmFtZXMoRGV2X21vZGVsX2F2ZylbbmFtZXMoRGV2X21vZGVsX2F2ZykgPT0gIkVzdGltYXRlIl0gPC0gIkNvbmRpdGlvbmFsIGF2ZXJhZ2UgZXN0aW1hdGUiCm5hbWVzKERldl9tb2RlbF9hdmcpW25hbWVzKERldl9tb2RlbF9hdmcpID09ICJTdGQuLkVycm9yIl0gPC0gIlN0YW5kYXJkIEVycm9yIgpuYW1lcyhEZXZfbW9kZWxfYXZnKVtuYW1lcyhEZXZfbW9kZWxfYXZnKSA9PSAiWDIuNS4uIl0gPC0gIjIuNSUgSW50ZXJ2YWwiCm5hbWVzKERldl9tb2RlbF9hdmcpW25hbWVzKERldl9tb2RlbF9hdmcpID09ICJYOTcuNS4uIl0gPC0gIjk3LjUlIEludGVydmFsIgoKCnBhbmRlcihEZXZfbW9kZWxfYXZnLCBzcGxpdC5jZWxsID0gNDAsIHNwbGl0LnRhYmxlID0gSW5mLCBlbXBoYXNpemUuc3Ryb25nLnJvd3MgPSAzKQoKYGBgCgoKYGBge3J9CmxhcnZhbF9kZXZlbG9wbWVudF9wbG90X2RhdGEgPC0gbGFydmFsX2RldmVsb3BtZW50ICU+JSAKICBtdXRhdGUoU29jaWFsX3N1cnZpdmFsID0gcmVwbGFjZShhcy5jaGFyYWN0ZXIoU29jaWFsX3N1cnZpdmFsKSwgU29jaWFsX3N1cnZpdmFsID09ICJMIiwgIkRpZWQgYXMgbGFydmEiKSwKICAgICAgICBTb2NpYWxfc3Vydml2YWwgPSByZXBsYWNlKGFzLmNoYXJhY3RlcihTb2NpYWxfc3Vydml2YWwpLCBTb2NpYWxfc3Vydml2YWwgPT0gIlAiLCAiRGllZCBhcyBwdXBhIiksCiAgICAgICAgIFNvY2lhbF9zdXJ2aXZhbCA9IHJlcGxhY2UoYXMuY2hhcmFjdGVyKFNvY2lhbF9zdXJ2aXZhbCksIFNvY2lhbF9zdXJ2aXZhbCA9PSAiTiIsICJTdXJ2aXZlZCB0byBhZHVsdGhvb2QiKSwKICAgICAgICBTZXggPSByZXBsYWNlKGFzLmNoYXJhY3RlcihTZXgpLCBTZXggPT0gIkYiLCAiRmVtYWxlIiksCiAgICAgICAgIFNleCA9IHJlcGxhY2UoYXMuY2hhcmFjdGVyKFNleCksIFNleCA9PSAiTSIsICJNYWxlIikpCgpsYXJ2YWxfZGV2ZWxvcG1lbnRfc3VtbWFyeSA8LSBsYXJ2YWxfZGV2ZWxvcG1lbnRfcGxvdF9kYXRhICU+JSAKICBkcGx5cjo6Z3JvdXBfYnkoU29jaWFsX3N1cnZpdmFsLCBTZXgpICU+JQogIGRwbHlyOjpzdW1tYXJpc2UoTWVhbl9EZXZfdGltZSA9IG1lYW4oRGV2X3RpbWUpLCBMb3dlciA9IChNZWFuX0Rldl90aW1lIC0gU0UoRGV2X3RpbWUpKiAxLjk2KSwgVXBwZXIgPSAoTWVhbl9EZXZfdGltZSArIFNFKERldl90aW1lKSoxLjk2KSwgbiA9IG4oKSkgJT4lIHJlbmFtZShEZXZfdGltZSA9IE1lYW5fRGV2X3RpbWUpCgoKbGFydmFsX2RldmVsb3BtZW50X3Bsb3RfZGF0YSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBTb2NpYWxfc3Vydml2YWwsIHkgPSBEZXZfdGltZSwgZmlsbCA9IFNvY2lhbF9zdXJ2aXZhbCwgY29sb3VyID0gU29jaWFsX3N1cnZpdmFsKSkgKwogIGdlb21fcXVhc2lyYW5kb20oZGF0YSA9IGxhcnZhbF9kZXZlbG9wbWVudF9wbG90X2RhdGEsIHdpZHRoID0gMC4zLCBzaXplID0gMiwgYWxwaGEgPSAgMC41KSArCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjKCJEaWVkIGFzIGxhcnZhIiA9ICIjYTUwZjE1IiwgIkRpZWQgYXMgcHVwYSIgPSAiI2ZlOTkyOSIsICJTdXJ2aXZlZCB0byBhZHVsdGhvb2QiID0gIiM0MWI2YzQiKSkgKwogIGdlb21fcG9pbnQoZGF0YSA9IGxhcnZhbF9kZXZlbG9wbWVudF9zdW1tYXJ5LCBhZXMoeCA9IFNvY2lhbF9zdXJ2aXZhbCwgeSA9IERldl90aW1lKSwgc2l6ZSA9IDMsIGNvbG91cj0nYmxhY2snKSArCiAgZ2VvbV9lcnJvcmJhcihkYXRhID0gbGFydmFsX2RldmVsb3BtZW50X3N1bW1hcnksIGFlcyh4ID0gU29jaWFsX3N1cnZpdmFsLCB5bWF4ID0gVXBwZXIsIHltaW4gPSBMb3dlciwgd2lkdGggPSAwKSwgY29sb3VyID0gImJsYWNrIikgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IGMoMjM4LCAyNjIsIDI4NiksIGxpbmV0eXBlID0gMiwgY29sb3VyID0gImdyZXkiLCBhbHBoYSA9IDAuNSkgKwogIGZhY2V0X3dyYXAofiBTZXgpICsKICBsYWJzKHggPSAiU3Vydml2YWwgb3V0Y29tZSBvZiBzb2NpYWwgcGFydG5lciIsIHkgPSAiRWdnLXRvLWFkdWx0IGRldmVsb3BtZW50IHRpbWUgKGhycykiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsKICB0aGVtZShwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCkpCgojICoqRmlndXJlIDM6KiogRWdnLXRvLWFkdWx0IGRldmVsb3BtZW50IHRpbWUgaXMgYWZmZWN0ZWQgYnkgYW4gaW5kaXZpZHVhbCdzIHNleCBhbmQgdGhlIHN1Y2Nlc3Mgb2YgYSBzb2NpYWwgY29tcGV0aXRvci4gVGhlIGNvbG91cmVkIHBvaW50cyBzaG93IHRoZSBkZXZlbG9wbWVudCB0aW1lIGZvciBpbmRpdmlkdWFsIGZsaWVzLiBUaGUgYmxhY2sgcG9pbnRzIHNob3cgdGhlIG1lYW4gZGV2ZWxvcG1lbnQgdGltZSBmb3IgbWFsZXMgYW5kIGZlbWFsZXMgYW5kIGl0cyA5NSUgY29uZmlkZW5jZSBsaW1pdHMuIERhc2hlZCBsaW5lcyBpbmRpY2F0ZSB3aGVuIGxpZ2h0cyB3ZXJlIHR1cm5lZCBlYWNoIG1vcm5pbmcgYW5kIGhpZ2hsaWdodCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gbGlnaHQgYW5kIGVjbG9zaW9uLgoKYGBgCgoKYGBge3J9CgpsYXJ2YWxfZGV2ZWxvcG1lbnRfcGxvdF9kYXRhIDwtIGxhcnZhbF9kZXZlbG9wbWVudCAlPiUgCiAgbXV0YXRlKFNleCA9IHJlcGxhY2UoYXMuY2hhcmFjdGVyKFNleCksIFNleCA9PSAiRiIsICJGZW1hbGUiKSwKICAgICAgICAgU2V4ID0gcmVwbGFjZShhcy5jaGFyYWN0ZXIoU2V4KSwgU2V4ID09ICJNIiwgIk1hbGUiKSkKCgpkZXZlbG9wbWVudF9tdEROQV9zdW1tYXJ5IDwtIGxhcnZhbF9kZXZlbG9wbWVudF9wbG90X2RhdGEgJT4lIAogIGRwbHlyOjpncm91cF9ieShGb2NhbF9oYXBsb3R5cGUpICU+JQogIGRwbHlyOjpzdW1tYXJpc2UoTWVhbl9EZXZfdGltZSA9IG1lYW4oRGV2X3RpbWUpLCBMb3dlciA9IChNZWFuX0Rldl90aW1lIC0gU0UoRGV2X3RpbWUpKiAxLjk2KSwgVXBwZXIgPSAoTWVhbl9EZXZfdGltZSArIFNFKERldl90aW1lKSoxLjk2KSwgbiA9IG4oKSkgJT4lIHJlbmFtZShEZXZfdGltZSA9IE1lYW5fRGV2X3RpbWUpCgoKbGFydmFsX2RldmVsb3BtZW50X3Bsb3RfZGF0YSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBGb2NhbF9oYXBsb3R5cGUsIHkgPSBEZXZfdGltZSwgZmlsbCA9IEZvY2FsX2hhcGxvdHlwZSwgY29sb3VyID0gRm9jYWxfaGFwbG90eXBlKSkgKwogIGdlb21fcXVhc2lyYW5kb20oZGF0YSA9IGxhcnZhbF9kZXZlbG9wbWVudF9wbG90X2RhdGEsIHdpZHRoID0gMC4zLCBzaXplID0gMiwgYWxwaGEgPSAgMC41KSArCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjKCJCYXJjZWxvbmEiID0gIiNhNTBmMTUiLCAiQnJvd25zdmlsbGUiID0gIiNmZTk5MjkiLCAiRGFob21leSIgPSAiIzQxYjZjNCIsICJJc3JhZWwiID0gIiMyMzg0NDMiICwgIlN3ZWRlbiIgPSAiIzRhMTQ4NiIpKSArCiAgZ2VvbV9wb2ludChkYXRhID0gZGV2ZWxvcG1lbnRfbXRETkFfc3VtbWFyeSwgYWVzKHggPSBGb2NhbF9oYXBsb3R5cGUsIHkgPSBEZXZfdGltZSksIHNpemUgPSAzLCBjb2xvdXI9J2JsYWNrJykgKwogIGdlb21fZXJyb3JiYXIoZGF0YSA9IGRldmVsb3BtZW50X210RE5BX3N1bW1hcnksIGFlcyh4ID0gRm9jYWxfaGFwbG90eXBlLCB5bWF4ID0gVXBwZXIsIHltaW4gPSBMb3dlciwgd2lkdGggPSAwKSwgY29sb3VyID0gImJsYWNrIikgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IGMoMjM4LCAyNjIsIDI4NiksIGxpbmV0eXBlID0gMiwgY29sb3VyID0gImdyZXkiLCBhbHBoYSA9IDAuNSkgKwogIGxhYnMoeCA9ICJtdEROQSBoYXBsb3R5cGUiLCB5ID0gIkVnZy10by1hZHVsdCBkZXZlbG9wbWVudCB0aW1lIChocnMpIikgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvci54ID0gZWxlbWVudF9ibGFuaygpKQpgYGAKCioqRmlndXJlIDI6KiogRWdnLXRvLWFkdWx0IGRldmVsb3BtZW50IHRpbWUgaXMgYWZmZWN0ZWQgYnkgYW4gaW5kaXZpZHVhbCdzIG10RE5BIGhhcGxvdHlwZS4gVGhlIGNvbG91cmVkIHBvaW50cyBzaG93IHRoZSBkZXZlbG9wbWVudCB0aW1lIGZvciBpbmRpdmlkdWFsIGZsaWVzLiBUaGUgYmxhY2sgcG9pbnRzIHNob3cgdGhlIG1lYW4gZGV2ZWxvcG1lbnQgdGltZSBmb3IgbWFsZXMgYW5kIGZlbWFsZXMgYW5kIGl0cyA5NSUgY29uZmlkZW5jZSBsaW1pdHMuCgoKIyMgQWR1bHQgZml0bmVzcyBtZWFzdXJlcwoKCiMjIyBCb2R5IHNpemUgYW5hbHlzaXMKCldlIHVzZSB3aW5nIGxlbmd0aCBhcyBhIHByb3h5IGZvciBhZHVsdCBib2R5IHNpemUuIEVycm9ycyBhcmUgbm9ybWFsbHkgZGlzdHJpYnV0ZWQsIHRoZXJlZm9yZSB3ZSBmaXQgYSBsaW5lYXIgbWl4ZWQgbW9kZWwuCgpUaGUgbW9kZWw6CgoqKldpbmdfbGVuZ3RoIH4gRm9jYWxfaGFwbG90eXBlICogU29jaWFsX2hhcGxvdHlwZSAqIFNleCArIER1cGxpY2F0ZSArICgxfEJsb2NrKSArICgxfFBpcGV0dGVfdGlwKSoqCgoKYGBge3J9Cgpib2R5X3NpemVfbW9kZWw8LSBsbWVyKFdpbmdfbGVuZ3RoIH4gRm9jYWxfaGFwbG90eXBlICogU29jaWFsX2hhcGxvdHlwZSAqIFNleCArIGZhY3RvcihEdXBsaWNhdGUpICsgKDF8QmxvY2spICsgKDF8UGlwZXR0ZV90aXApLCBib2R5X3NpemUsIG5hLmFjdGlvbiA9IG5hLmZhaWwsIFJFTUwgPSBGQUxTRSkKCmBgYAoKTGV0cyBoYXZlIGEgbG9vayBhdCBtb2RlbCBkaWFnbm9zdGljcwoKYGBge3J9CnJlc2lkX3BhbmVsKGJvZHlfc2l6ZV9tb2RlbCkKYGBgCgoKIyMjIyBNb2RlbCBldmFsdWF0aW9uCgoqKlRhYmxlIFMzKio6IEV2YWx1YXRpb24gb2YgdGhlIHdpbmcgbGVuZ3RoIG1vZGVsLiBBbGwgcG9zc2libGUgbW9kZWxzIHdlcmUgZXZhbHVhdGVkIGZyb20gdGhlIGdsb2JhbCBtb2RlbCB0aGF0IGluY2x1ZGVkIGEgdGhyZWUtd2F5IGludGVyYWN0aW9uIGJldHdlZW4gZm9jYWwgaGFwbG90eXBlLCBzb2NpYWwgaGFwbG90eXBlIGFuZCBzb2NpYWwgc3Vydml2YWwsICB0aGUgc3RhbmRhbG9uZSBmaXhlZCBlZmZlY3RzIHNleCBhbmQgZHVwbGljYXRlLCBhcyB3ZWxsIGFzIHRoZSByYW5kb20gZmFjdG9yICdCbG9jaycuIEFzIHRoZXJlIHdhcyBubyBjbGVhciB0b3AgbW9kZWwsIHRoZSBmaW5hbCBtb2RlbCB3YXMgY2FsY3VsYXRlZCB2aWEgbW9kZWwgYXZlcmFnaW5nLgpgYGB7cn0KCiMgQ29tcGFyZSBhbGwgcG9zc2libGUgY29tYmluYXRpb25zIG9mIG1vZGVscyAoZnJvbSB0aGUgZ2xvYmFsIG1vZGVsKQoKYm9keV9zaXplX2RyZWRnZSA8LSBkcmVkZ2UoYm9keV9zaXplX21vZGVsKQoKc2l6ZV90YWJsZSA8LSBzdWJzZXQoYm9keV9zaXplX2RyZWRnZSwgZGVsdGEgPCA2LCByZWNhbGMud2VpZ2h0cyA9IEZBTFNFKSAlPiUgYXMuZGF0YS5mcmFtZSgpCgoKbmFtZXMoc2l6ZV90YWJsZSlbbmFtZXMoc2l6ZV90YWJsZSkgPT0gIihJbnRlcmNlcHQpIl0gPC0gIkludGVyY2VwdCIKbmFtZXMoc2l6ZV90YWJsZSlbbmFtZXMoc2l6ZV90YWJsZSkgPT0gImZhY3RvcihEdXBsaWNhdGUpIl0gPC0gIkR1cGxpY2F0ZSIKbmFtZXMoc2l6ZV90YWJsZSlbbmFtZXMoc2l6ZV90YWJsZSkgPT0gIkZvY2FsX2hhcGxvdHlwZSJdIDwtICJGb2NhbCBoYXBsb3R5cGUiCm5hbWVzKHNpemVfdGFibGUpW25hbWVzKHNpemVfdGFibGUpID09ICJTZXgiXSA8LSAiU2V4IgpuYW1lcyhzaXplX3RhYmxlKVtuYW1lcyhzaXplX3RhYmxlKSA9PSAiU29jaWFsX2hhcGxvdHlwZSJdIDwtICJTb2NpYWwgaGFwbG90eXBlIgpuYW1lcyhzaXplX3RhYmxlKVtuYW1lcyhzaXplX3RhYmxlKSA9PSAiRm9jYWxfaGFwbG90eXBlOlNleCJdIDwtICJGb2NhbCBoYXBsb3R5cGUgeCBTZXgiCm5hbWVzKHNpemVfdGFibGUpW25hbWVzKHNpemVfdGFibGUpID09ICJGb2NhbF9oYXBsb3R5cGU6U29jaWFsX2hhcGxvdHlwZSJdIDwtICJGb2NhbCBoYXBsb3R5cGUgeCBTb2NpYWwgaGFwbG90eXBlIgpuYW1lcyhzaXplX3RhYmxlKVtuYW1lcyhzaXplX3RhYmxlKSA9PSAiU29jaWFsX2hhcGxvdHlwZTpTZXgiXSA8LSAiU29jaWFsIGhhcGxvdHlwZSB4IFNleCIKbmFtZXMoc2l6ZV90YWJsZSlbbmFtZXMoc2l6ZV90YWJsZSkgPT0gIkZvY2FsX2hhcGxvdHlwZTpTb2NpYWxfaGFwbG90eXBlOlNleCJdIDwtICJGb2NhbCBoYXBsb3R5cGUgeCBTb2NpYWwgaGFwbG90eXBlIHggU2V4IgpuYW1lcyhzaXplX3RhYmxlKVtuYW1lcyhzaXplX3RhYmxlKSA9PSAiZGYiXSA8LSAiRGVncmVlcyBvZiBmcmVlZG9tIgpuYW1lcyhzaXplX3RhYmxlKVtuYW1lcyhzaXplX3RhYmxlKSA9PSAibG9nTGlrIl0gPC0gIkxvZyBsaWtlbGlob29kIgpuYW1lcyhzaXplX3RhYmxlKVtuYW1lcyhzaXplX3RhYmxlKSA9PSAiQUlDYyJdIDwtICJBSUNjIgpuYW1lcyhzaXplX3RhYmxlKVtuYW1lcyhzaXplX3RhYmxlKSA9PSAiZGVsdGEiXSA8LSAiRGVsdGEiCm5hbWVzKHNpemVfdGFibGUpW25hbWVzKHNpemVfdGFibGUpID09ICJ3ZWlnaHQiXSA8LSAiV2VpZ2h0IgoKcGFuZGVyKHNpemVfdGFibGUsIHNwbGl0LmNlbGwgPSA0MCwgc3BsaXQudGFibGUgPSBJbmYpCgpgYGAKCiMjIyMgTW9kZWwgYXZlcmFnaW5nCgoqKlRhYmxlIDM6KiogQ29uZGl0aW9uYWwgbW9kZWwgY29lZmZpY2llbnRzLCBzdGFuZGFyZCBlcnJvciBhbmQgOTUlIGNvbmZpZGVuY2UgbGltaXRzIGFyZSBzaG93biBmb3IgdGhlIHdpbmcgbGVuZ3RoIGF2ZXJhZ2VkIG1vZGVsLiBCb2xkIHJvd3MgaW5kaWNhdGUgc2lnbmZpY2FudCBlZmZlY3RzLgpgYGB7cn0KCiMgTW9kZWwgYXZlcmFnaW5nCgojc3VtbWFyeShtb2RlbC5hdmcoYm9keV9zaXplX2RyZWRnZSwgc3Vic2V0ID0gZGVsdGEgPCA2KSkKClNpemVfQ0lzIDwtIGNvbmZpbnQobW9kZWwuYXZnKGJvZHlfc2l6ZV9kcmVkZ2UsIHN1YnNldCA9IGRlbHRhIDwgNikpICU+JSBhcy5kYXRhLmZyYW1lKCkKClNpemVfZXN0aW1hdGUgPC0gY29lZlRhYmxlKG1vZGVsLmF2Zyhib2R5X3NpemVfZHJlZGdlLCBzdWJzZXQgPSBkZWx0YSA8IDYpKSAlPiUgYXMuZGF0YS5mcmFtZSgpCgpTaXplX21vZGVsX2F2ZyA8LSBkYXRhLmZyYW1lKFNpemVfZXN0aW1hdGUsIFNpemVfQ0lzKSAlPiUgc2VsZWN0KEVzdGltYXRlLCBTdGQuLkVycm9yLCAgWDIuNS4uLCBYOTcuNS4uKQoKbmFtZXMoU2l6ZV9tb2RlbF9hdmcpW25hbWVzKFNpemVfbW9kZWxfYXZnKSA9PSAiRXN0aW1hdGUiXSA8LSAiQ29uZGl0aW9uYWwgYXZlcmFnZSBlc3RpbWF0ZSIKbmFtZXMoU2l6ZV9tb2RlbF9hdmcpW25hbWVzKFNpemVfbW9kZWxfYXZnKSA9PSAiU3RkLi5FcnJvciJdIDwtICJTdGFuZGFyZCBFcnJvciIKbmFtZXMoU2l6ZV9tb2RlbF9hdmcpW25hbWVzKFNpemVfbW9kZWxfYXZnKSA9PSAiWDIuNS4uIl0gPC0gIjIuNSUgSW50ZXJ2YWwiCm5hbWVzKFNpemVfbW9kZWxfYXZnKVtuYW1lcyhTaXplX21vZGVsX2F2ZykgPT0gIlg5Ny41Li4iXSA8LSAiOTcuNSUgSW50ZXJ2YWwiCgpwYW5kZXIoU2l6ZV9tb2RlbF9hdmcsIHNwbGl0LmNlbGwgPSA0MCwgc3BsaXQudGFibGUgPSBJbmYsIGVtcGhhc2l6ZS5zdHJvbmcucm93cyA9ICgyKSkKCmBgYAoKYGBge3J9CmJvZHlfc2l6ZV9wbG90X2RhdGEgPC0gYm9keV9zaXplICU+JSAKICBtdXRhdGUoU29jaWFsX3N1cnZpdmFsID0gcmVwbGFjZShhcy5jaGFyYWN0ZXIoU29jaWFsX3N1cnZpdmFsKSwgU29jaWFsX3N1cnZpdmFsID09ICJMIiwgIkRpZWQgYXMgbGFydmEiKSwKICAgICAgICBTb2NpYWxfc3Vydml2YWwgPSByZXBsYWNlKGFzLmNoYXJhY3RlcihTb2NpYWxfc3Vydml2YWwpLCBTb2NpYWxfc3Vydml2YWwgPT0gIlAiLCAiRGllZCBhcyBwdXBhIiksCiAgICAgICAgIFNvY2lhbF9zdXJ2aXZhbCA9IHJlcGxhY2UoYXMuY2hhcmFjdGVyKFNvY2lhbF9zdXJ2aXZhbCksIFNvY2lhbF9zdXJ2aXZhbCA9PSAiTiIsICJTdXJ2aXZlZCB0byBhZHVsdGhvb2QiKSwKICAgICAgICBTZXggPSByZXBsYWNlKGFzLmNoYXJhY3RlcihTZXgpLCBTZXggPT0gIkYiLCAiRmVtYWxlIiksCiAgICAgICAgIFNleCA9IHJlcGxhY2UoYXMuY2hhcmFjdGVyKFNleCksIFNleCA9PSAiTSIsICJNYWxlIikpCgpib2R5X3NpemVfc3VtbWFyeSA8LSBib2R5X3NpemVfcGxvdF9kYXRhICU+JSAKICBkcGx5cjo6Z3JvdXBfYnkoU2V4KSAlPiUKICBkcGx5cjo6c3VtbWFyaXNlKE1lYW5fd2luZ19sZW5ndGggPSBtZWFuKFdpbmdfbGVuZ3RoKSwgTG93ZXIgPSAoTWVhbl93aW5nX2xlbmd0aCAtIFNFKFdpbmdfbGVuZ3RoKSogMS45NiksIFVwcGVyID0gKE1lYW5fd2luZ19sZW5ndGggKyBTRShXaW5nX2xlbmd0aCkqMS45NiksIG4gPSBuKCkpICU+JSByZW5hbWUoV2luZ19sZW5ndGggPSBNZWFuX3dpbmdfbGVuZ3RoKQoKCmJvZHlfc2l6ZV9wbG90X2RhdGEgJT4lCiAgZ2dwbG90KGFlcyh4ID0gU2V4LCB5ID0gV2luZ19sZW5ndGgsIGZpbGwgPSBTZXgsIGNvbG91ciA9IFNleCkpICsKICBnZW9tX3F1YXNpcmFuZG9tKGRhdGEgPSBib2R5X3NpemVfcGxvdF9kYXRhLCB3aWR0aCA9IDAuMywgc2l6ZSA9IDIsIGFscGhhID0gIDAuNSkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gYygiRmVtYWxlIiA9ICIjZmU5OTI5IiwgIk1hbGUiID0gIiM0MWI2YzQiKSkgKwogIGdlb21fcG9pbnQoZGF0YSA9IGJvZHlfc2l6ZV9zdW1tYXJ5LCBhZXMoeCA9IFNleCwgeSA9IFdpbmdfbGVuZ3RoKSwgc2l6ZSA9IDMsIGNvbG91cj0nYmxhY2snKSArCiAgZ2VvbV9lcnJvcmJhcihkYXRhID0gYm9keV9zaXplX3N1bW1hcnksIGFlcyh4ID0gU2V4LCB5bWF4ID0gVXBwZXIsIHltaW4gPSBMb3dlciwgd2lkdGggPSAwKSwgY29sb3VyID0gImJsYWNrIikgKwogIGxhYnMoeCA9ICJTZXgiLCB5ID0gIldpbmcgbGVuZ3RoIChtbSkiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsKICB0aGVtZShwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCkpCgpgYGAKCioqRmlndXJlIDU6KiogV2luZyBsZW5ndGggaXMgYWZmZWN0ZWQgYnkgYW4gaW5kaXZpZHVhbCdzIHNleCBhbmQgdGhlIHN1Y2Nlc3Mgb2YgYSBzb2NpYWwgY29tcGV0aXRvci4gVGhlIGNvbG91cmVkIHBvaW50cyBzaG93IHRoZSBkZXZlbG9wbWVudCB0aW1lIGZvciBpbmRpdmlkdWFsIGZsaWVzLiBUaGUgYmxhY2sgcG9pbnRzIHNob3cgdGhlIG1lYW4gd2luZyBsZW5ndGggZm9yIG1hbGVzIGFuZCBmZW1hbGVzIGFuZCBpdHMgOTUlIGNvbmZpZGVuY2UgbGltaXRzLgoKCiMjIyBGZW1hbGUgcmVwcm9kdWN0aXZlIG91dHB1dAoKVG8gZWZmZWN0aXZlbHkgYWNjb21tb2RhdGUgemVyby1pbmZsYXRpb24sIHdlIG1vZGVsbGVkIGZlbWFsZSBvZmZzcHJpbmcgcHJvZHVjdGlvbiB1c2luZyB0aGUgYGdsbW1UTUJgIHBhY2thZ2UgW0BSTjYwMl0uIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gZml0IGh1cmRsZSBtb2RlbHMgYW5kIHplcm8taW5mbGF0ZWQgbW9kZWxzLgoKSHVyZGxlIG1vZGVscyB0cmVhdCB6ZXJvLWNvdW50IGFuZCBub256ZXJvIG91dGNvbWVzIGFzIHR3byBjb21wbGV0ZWx5IHNlcGFyYXRlIGNhdGVnb3JpZXMsIHdoaWxlIHplcm8taW5mbGF0ZWQgbW9kZWxzIHRyZWF0IHplcm8tY291bnQgb3V0Y29tZXMgYXMgYSBtaXh0dXJlIG9mIHN0cnVjdHVyYWwgYW5kIHNhbXBsaW5nIHplcm9zLgoKV2UgYW5hbHlzZWQgdGhlIG51bWJlciBvZiBvZmZzcHJpbmcgcHJvZHVjZWQgYnkgZmVtYWxlcyB1c2luZyBhIGh1cmRsZSBtb2RlbCB3aXRoIG5lZ2F0aXZlIGJpbm9taWFsIGVycm9ycy4gVGhpcyBhcHByb2FjaCBhbGxvd2VkIHVzIHRvIGFuc3dlciB0d28gcXVlc3Rpb25zOiAoMSkgZGlkIG10RE5BIGFuZC9vciBjb21wZXRpdGlvbiBhZmZlY3QgdGhlIGluY2lkZW5jZSBvZiBmYWlsaW5nIHRvIHByb2R1Y2UgYW55IG9mZnNwcmluZz8gYW5kICgyKSBmb3IgZmVtYWxlcyB0aGF0IHByb2R1Y2VkIGF0IGxlYXN0IG9uZSBvZmZzcHJpbmcsIHdhcyB0aGUgbnVtYmVyIG9mIG9mZnNwcmluZyBwcm9kdWNlZCBhZmZlY3RlZCBieSBtdEROQS9jb21wZXRpdGlvbj8KClRoZSBtb2RlbDoKCioqTWF0ZXJuYWxfdG90YWxfb2Zmc3ByaW5nIH4gRm9jYWxfaGFwbG90eXBlICogU29jaWFsX2hhcGxvdHlwZSArIGZhY3RvcihEdXBsaWNhdGUpICsgKDF8QmxvY2spICsgKDF8UGlwZXR0ZV90aXApKioKCmBgYHtyfQoKZmVtYWxlX2h1cmRsZV9tb2RlbCA8LSBnbG1tVE1CKE1hdGVybmFsX3RvdGFsX29mZnNwcmluZyB+IEZvY2FsX2hhcGxvdHlwZSAqIFNvY2lhbF9oYXBsb3R5cGUgKyBmYWN0b3IoRHVwbGljYXRlKSArICgxfEJsb2NrKSArICgxfFBpcGV0dGVfdGlwKSwgZGF0YSA9IGZlbWFsZV9yZXByb2R1Y3RpdmVfb3V0cHV0LCBmYW1pbHkgPSBsaXN0KGZhbWlseT0idHJ1bmNhdGVkX25iaW5vbTEiLGxpbms9ImxvZyIpLCB6aWZvcm11bGEgPSB+LiwgbmEuYWN0aW9uID0gbmEuZmFpbCwgUkVNTCA9IEZBTFNFKQoKYGBgCgojIyMjIE1vZGVsIGV2YWx1YXRpb24gXyh0aGUgZHJlZGdlIGlzIHNjcmV3ZWQpXwoKKipUYWJsZSBTNCoqOiBFdmFsdWF0aW9uIG9mIHRoZSBmZW1hbGUgcmVwcm9kdWN0aXZlIG91dHB1dCBtb2RlbC4gQWxsIHBvc3NpYmxlIG1vZGVscyB3ZXJlIGV2YWx1YXRlZCBmcm9tIHRoZSBnbG9iYWwgbW9kZWwgdGhhdCBpbmNsdWRlZCBhIHRocmVlLXdheSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGZvY2FsIGhhcGxvdHlwZSwgc29jaWFsIGhhcGxvdHlwZSBhbmQgc29jaWFsIHN1cnZpdmFsLCB0aGUgc3RhbmRhbG9uZSBmaXhlZCBlZmZlY3QgJ2R1cGxpY2F0ZScsIGFuZCB0aGUgcmFuZG9tIGZhY3RvciAnQmxvY2snLiBBcyB0aGVyZSB3YXMgbm8gY2xlYXIgdG9wIG1vZGVsLCB0aGUgZmluYWwgbW9kZWwgd2FzIGNhbGN1bGF0ZWQgdmlhIG1vZGVsIGF2ZXJhZ2luZy4gVGhlIHplcm8taW5mbGF0ZWQgcmVzdWx0cyBjb3JyZXNwb25kIHRvIHF1ZXN0aW9uICgxKSwgd2hpbGUgdGhlIGNvbmRpdGlvbmFsIHJlc3VsdHMgY29ycmVzcG9uZCB0byBxdWVzdGlvbiAoMikgYWJvdmUuCmBgYHtyLCBldmFsPSBGQUxTRX0KIyBDb21wYXJlIGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2YgbW9kZWxzIChmcm9tIHRoZSBnbG9iYWwgbW9kZWwpCgppZihmaWxlLmV4aXN0cygiZmVtYWxlX2RyZWRnZS5yZHMiKSl7ICMgSWYgYWxyZWFkeSBkb25lLCBqdXN0IGxvYWQgdGhlIHJlc3VsdHMKICBmZW1hbGVfZHJlZGdlIDwtIHJlYWRSRFMoImZlbWFsZV9kcmVkZ2UucmRzIikKfSBlbHNlIHtmZW1hbGVfZHJlZGdlIDwtIGRyZWRnZShmZW1hbGVfaHVyZGxlX21vZGVsKSAgICAgICAgICAgICAgICAgICMgSWYgbm90IGFscmVhZHkgZG9uZSwgcnVuIGFsbCB0aGUgbW9kZWxzIGFuZCBzYXZlIHRoZSByZXN1bHRzCmxhcHBseShjKCJmZW1hbGVfZHJlZGdlIiksIHNhdmVfaXQpCn0KCmZlbWFsZV90YWJsZSA8LSBzdWJzZXQoZmVtYWxlX2RyZWRnZSwgZGVsdGEgPCA2LCByZWNhbGMud2VpZ2h0cyA9IEZBTFNFKSAlPiUgYXMuZGF0YS5mcmFtZSgpCgpuYW1lcyhmZW1hbGVfdGFibGUpW25hbWVzKGZlbWFsZV90YWJsZSkgPT0gImNvbmQoKEludCkpIl0gPC0gIkNvbmRpdGlvbmFsIGludGVyY2VwdCIKbmFtZXMoZmVtYWxlX3RhYmxlKVtuYW1lcyhmZW1hbGVfdGFibGUpID09ICJ6aSgoSW50KSkiXSA8LSAiWmVyby1pbmZsYXRlZCBpbnRlcmNlcHQiCm5hbWVzKGZlbWFsZV90YWJsZSlbbmFtZXMoZmVtYWxlX3RhYmxlKSA9PSAiZGlzcCgoSW50KSkiXSA8LSAiRGlzcGVyc2lvbiBmYWN0b3IgaW50ZXJjZXB0IgpuYW1lcyhmZW1hbGVfdGFibGUpW25hbWVzKGZlbWFsZV90YWJsZSkgPT0gImNvbmQoZmFjdG9yKGR1cGxpY2F0ZSkpIl0gPC0gIkNvbmRpdGlvbmFsIChEdXBsaWNhdGUpIgpuYW1lcyhmZW1hbGVfdGFibGUpW25hbWVzKGZlbWFsZV90YWJsZSkgPT0gImNvbmQoRm9jYWxfaGFwbG90eXBlKSJdIDwtICJDb25kaXRpb25hbCAoRm9jYWwgaGFwbG90eXBlKSIKbmFtZXMoZmVtYWxlX3RhYmxlKVtuYW1lcyhmZW1hbGVfdGFibGUpID09ICJjb25kKFNvY2lhbF9oYXBsb3R5cGUpIl0gPC0gIkNvbmRpdGlvbmFsIChTb2NpYWwgaGFwbG90eXBlKSIKbmFtZXMoZmVtYWxlX3RhYmxlKVtuYW1lcyhmZW1hbGVfdGFibGUpID09ICJjb25kKEZvY2FsX2hhcGxvdHlwZTpTb2NpYWxfaGFwbG90eXBlKSJdIDwtICJDb25kaXRpb25hbCAoRm9jYWwgaGFwbG90eXBlIHggU29jaWFsIGhhcGxvdHlwZSkiCm5hbWVzKGZlbWFsZV90YWJsZSlbbmFtZXMoZmVtYWxlX3RhYmxlKSA9PSAiemkoZmFjdG9yKGR1cGxpY2F0ZSkpIl0gPC0gIlplcm8taW5mbGF0ZWQgKER1cGxpY2F0ZSkiCm5hbWVzKGZlbWFsZV90YWJsZSlbbmFtZXMoZmVtYWxlX3RhYmxlKSA9PSAiemkoRm9jYWxfaGFwbG90eXBlKSJdIDwtICJaZXJvLWluZmxhdGVkIChGb2NhbCBoYXBsb3R5cGUpIgpuYW1lcyhmZW1hbGVfdGFibGUpW25hbWVzKGZlbWFsZV90YWJsZSkgPT0gInppKFNvY2lhbF9oYXBsb3R5cGUpIl0gPC0gIlplcm8taW5mbGF0ZWQgKFNvY2lhbCBoYXBsb3R5cGUpIgpuYW1lcyhmZW1hbGVfdGFibGUpW25hbWVzKGZlbWFsZV90YWJsZSkgPT0gInppKEZvY2FsX2hhcGxvdHlwZTpTb2NpYWxfaGFwbG90eXBlKSJdIDwtICJaZXJvLWluZmxhdGVkIChGb2NhbCBoYXBsb3R5cGUgeCBTb2NpYWwgaGFwbG90eXBlKSIKbmFtZXMoZmVtYWxlX3RhYmxlKVtuYW1lcyhmZW1hbGVfdGFibGUpID09ICJkZiJdIDwtICJEZWdyZWVzIG9mIGZyZWVkb20iCm5hbWVzKGZlbWFsZV90YWJsZSlbbmFtZXMoZmVtYWxlX3RhYmxlKSA9PSAibG9nTGlrIl0gPC0gIkxvZyBsaWtlbGlob29kIgpuYW1lcyhmZW1hbGVfdGFibGUpW25hbWVzKGZlbWFsZV90YWJsZSkgPT0gIkFJQ2MiXSA8LSAiQUlDYyIKbmFtZXMoZmVtYWxlX3RhYmxlKVtuYW1lcyhmZW1hbGVfdGFibGUpID09ICJkZWx0YSJdIDwtICJEZWx0YSIKbmFtZXMoZmVtYWxlX3RhYmxlKVtuYW1lcyhmZW1hbGVfdGFibGUpID09ICJ3ZWlnaHQiXSA8LSAiV2VpZ2h0IgoKcGFuZGVyKGZlbWFsZV90YWJsZSwgc3BsaXQuY2VsbCA9IDQwLCBzcGxpdC50YWJsZSA9IEluZikKCmBgYAoKIyMjIyBNb2RlbCBhdmVyYWdpbmcKCioqVGFibGUgNDoqKiBDb25kaXRpb25hbCAoYWZ0ZXIgaHVyZGxlKSBhbmQgemkgKHplcm8taHVyZGxlIHJlcXVpcmVtZW50KSBtb2RlbCBjb2VmZmljaWVudHMsIHN0YW5kYXJkIGVycm9yIGFuZCA5NSUgY29uZmlkZW5jZSBsaW1pdHMgYXJlIHNob3duIGZvciB0aGUgZmVtYWxlIG9mZnNwcmluZyBwcm9kdWN0aW9uIGF2ZXJhZ2VkIG1vZGVsLiBCb2xkIHJvd3MgaW5kaWNhdGUgc2lnbmZpY2FudCBlZmZlY3RzLiAKCmBgYHtyfQoKI3N1bW1hcnkobW9kZWwuYXZnKGZlbWFsZV9kcmVkZ2UsIHN1YnNldCA9IGRlbHRhIDwgNikpCgpGZW1hbGVfQ0lzIDwtIGNvbmZpbnQobW9kZWwuYXZnKGZlbWFsZV9kcmVkZ2UsIHN1YnNldCA9IGRlbHRhIDwgNikpICU+JSBhcy5kYXRhLmZyYW1lKCkKCkZlbWFsZV9lc3RpbWF0ZSA8LSBjb2VmVGFibGUobW9kZWwuYXZnKGZlbWFsZV9kcmVkZ2UsIHN1YnNldCA9IGRlbHRhIDwgNikpICU+JSBhcy5kYXRhLmZyYW1lKCkKCkZlbWFsZV9tb2RlbF9hdmcgPC0gZGF0YS5mcmFtZShGZW1hbGVfZXN0aW1hdGUsIEZlbWFsZV9DSXMpICU+JSBzZWxlY3QoRXN0aW1hdGUsIFN0ZC4uRXJyb3IsICBYMi41Li4sIFg5Ny41Li4pCgpuYW1lcyhGZW1hbGVfbW9kZWxfYXZnKVtuYW1lcyhGZW1hbGVfbW9kZWxfYXZnKSA9PSAiRXN0aW1hdGUiXSA8LSAiQ29uZGl0aW9uYWwgYXZlcmFnZSBlc3RpbWF0ZSIKbmFtZXMoRmVtYWxlX21vZGVsX2F2ZylbbmFtZXMoRmVtYWxlX21vZGVsX2F2ZykgPT0gIlN0ZC4uRXJyb3IiXSA8LSAiU3RhbmRhcmQgRXJyb3IiCm5hbWVzKEZlbWFsZV9tb2RlbF9hdmcpW25hbWVzKEZlbWFsZV9tb2RlbF9hdmcpID09ICJYMi41Li4iXSA8LSAiMi41JSBJbnRlcnZhbCIKbmFtZXMoRmVtYWxlX21vZGVsX2F2ZylbbmFtZXMoRmVtYWxlX21vZGVsX2F2ZykgPT0gIlg5Ny41Li4iXSA8LSAiOTcuNSUgSW50ZXJ2YWwiCgpwYW5kZXIoRmVtYWxlX21vZGVsX2F2Zywgc3BsaXQuY2VsbCA9IDQwLCBzcGxpdC50YWJsZSA9IEluZiwgZW1waGFzaXplLnN0cm9uZy5yb3dzID0gYyg1OjcsIDEyKSkKCmBgYAoKYGBge3J9CmZlbWFsZV96aV9wbG90X2RhdGEgPC0gZmVtYWxlX3JlcHJvZHVjdGl2ZV9vdXRwdXQgJT4lCiAgbXV0YXRlKEJpbmFyeV9tYXRlcm5hbF9vZmZzcHJpbmcgPSBpZmVsc2UoTWF0ZXJuYWxfdG90YWxfb2Zmc3ByaW5nID4gMCwgIjEiLCAiMCIpKQoKZmVtYWxlX3ppX3N1bW1hcnkgPC0gZmVtYWxlX3ppX3Bsb3RfZGF0YSAlPiUgCiAgZHBseXI6Omdyb3VwX2J5KFNvY2lhbF9oYXBsb3R5cGUpICU+JQogIGRwbHlyOjpzdW1tYXJpc2UobnVtYmVyX3Byb2R1Y2luZ19vZmZzcHJpbmcgPSBzdW0oQmluYXJ5X21hdGVybmFsX29mZnNwcmluZyA9PSAxKSwgbnVtYmVyX3plcm9fb2Zmc3ByaW5nID0gc3VtKEJpbmFyeV9tYXRlcm5hbF9vZmZzcHJpbmcgPT0gMCkpICU+JQogIGFzLmRhdGEuZnJhbWUoKQoKZmVtYWxlX3ppX0NJcyA8LSBnZXRfQ0lzX2Zvcl9iaW5vbWlhbF90cmlhbHMoZmVtYWxlX3ppX3N1bW1hcnkkbnVtYmVyX3Byb2R1Y2luZ19vZmZzcHJpbmcsIGZlbWFsZV96aV9zdW1tYXJ5JG51bWJlcl96ZXJvX29mZnNwcmluZykgJT4lIHJlbmFtZShCaW5hcnlfbWF0ZXJuYWxfb2Zmc3ByaW5nID0gUHJvcG9ydGlvbikKCmZlbWFsZV96aV9zdW1tYXJ5IDwtIGNiaW5kKGZlbWFsZV96aV9zdW1tYXJ5LCBmZW1hbGVfemlfQ0lzKQoKZmVtYWxlX3ppX3Bsb3RfZGF0YSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBTb2NpYWxfaGFwbG90eXBlLCB5ID0gQmluYXJ5X21hdGVybmFsX29mZnNwcmluZywgZmlsbCA9IFNvY2lhbF9oYXBsb3R5cGUsIGNvbG91ciA9IFNvY2lhbF9oYXBsb3R5cGUpKSArCiAgZ2VvbV9wb2ludChkYXRhID0gZmVtYWxlX3ppX3N1bW1hcnksIGFlcyh4ID0gU29jaWFsX2hhcGxvdHlwZSwgeSA9IEJpbmFyeV9tYXRlcm5hbF9vZmZzcHJpbmcpLCBzaXplID0gMywgY29sb3VyPSdibGFjaycpICsKICBnZW9tX2Vycm9yYmFyKGRhdGEgPSBmZW1hbGVfemlfc3VtbWFyeSwgYWVzKHggPSBTb2NpYWxfaGFwbG90eXBlLCB5bWF4ID0gdXBwZXJDSSwgeW1pbiA9IGxvd2VyQ0ksIHdpZHRoID0gMCksIGNvbG91ciA9ICJibGFjayIpICsKICBsYWJzKHggPSAiU29jaWFsIG1hbGUgbXRETkEgaGFwbG90eXBlIiwgeSA9ICJQcm9wb3J0aW9uIG9mIGZlbWFsZXMgcHJvZHVjaW5nIG9mZnNwcmluZyIpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKwogIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSkKCmBgYAoKKipGaWd1cmUgNjoqKiBUaGUgcHJvcG9ydGlvbiBvZiBmZW1hbGVzIHN1Y2Nlc3NmdWxseSBwcm9kdWNpbmcgb2Zmc3ByaW5nIGlzIGFmZmVjdGVkIGJ5IHRoZSBtdEROQSBvZiBhIHNvY2lhbCBtYWxlIGNvbXBldGl0b3IgZHVyaW5nIGxhcnZhbCBkZXZlbG9wbWVudC4gQmxhY2sgcG9pbnRzIHNob3cgdGhlIG1lYW4gZm9yIGVhY2ggc29jaWFsIGhhcGxvdHlwZSBhbmQgYXNzb2NpYXRlZCBjb25maWRlbmNlIGludGVydmFscy4gRGF0YSBjb3JyZXNwb25kcyB0byB0aGUgaHVyZGxlIChiaW5vbWlhbCkgY29tcG9uZW50IG9mIHRoZSBodXJkbGUgbW9kZWwuICAKCgpgYGB7cn0KZmVtYWxlX2NvbmRfcGxvdF9kYXRhIDwtIGZlbWFsZV9yZXByb2R1Y3RpdmVfb3V0cHV0ICU+JSAKICBtdXRhdGUoU29jaWFsX3N1cnZpdmFsID0gcmVwbGFjZShhcy5jaGFyYWN0ZXIoU29jaWFsX3N1cnZpdmFsKSwgU29jaWFsX3N1cnZpdmFsID09ICJMIiwgIkRpZWQgYXMgbGFydmEiKSwKICAgICAgICBTb2NpYWxfc3Vydml2YWwgPSByZXBsYWNlKGFzLmNoYXJhY3RlcihTb2NpYWxfc3Vydml2YWwpLCBTb2NpYWxfc3Vydml2YWwgPT0gIlAiLCAiRGllZCBhcyBwdXBhIiksCiAgICAgICAgIFNvY2lhbF9zdXJ2aXZhbCA9IHJlcGxhY2UoYXMuY2hhcmFjdGVyKFNvY2lhbF9zdXJ2aXZhbCksIFNvY2lhbF9zdXJ2aXZhbCA9PSAiTiIsICJTdXJ2aXZlZCB0byBhZHVsdGhvb2QiKSkgJT4lCiAgZmlsdGVyKE1hdGVybmFsX3RvdGFsX29mZnNwcmluZyAhPSAwKQoKZmVtYWxlX2NvbmRfc3VtbWFyeSA8LSBmZW1hbGVfY29uZF9wbG90X2RhdGEgJT4lIAogIGRwbHlyOjpncm91cF9ieShGb2NhbF9oYXBsb3R5cGUpICU+JQogIGRwbHlyOjpzdW1tYXJpc2UoTWVhbl9vZmZzcHJpbmcgPSBtZWFuKE1hdGVybmFsX3RvdGFsX29mZnNwcmluZyksIExvd2VyID0gKE1lYW5fb2Zmc3ByaW5nIC0gU0UoTWF0ZXJuYWxfdG90YWxfb2Zmc3ByaW5nKSogMS45NiksIFVwcGVyID0gKE1lYW5fb2Zmc3ByaW5nICsgU0UoTWF0ZXJuYWxfdG90YWxfb2Zmc3ByaW5nKSoxLjk2KSwgbiA9IG4oKSkgJT4lIHJlbmFtZShNYXRlcm5hbF90b3RhbF9vZmZzcHJpbmcgPSBNZWFuX29mZnNwcmluZykKCgpmZW1hbGVfY29uZF9wbG90X2RhdGEgJT4lCiAgZ2dwbG90KGFlcyh4ID0gRm9jYWxfaGFwbG90eXBlLCB5ID0gTWF0ZXJuYWxfdG90YWxfb2Zmc3ByaW5nLCBmaWxsID0gRm9jYWxfaGFwbG90eXBlLCBjb2xvdXIgPSBGb2NhbF9oYXBsb3R5cGUpKSArCiAgZ2VvbV9xdWFzaXJhbmRvbShkYXRhID0gZmVtYWxlX2NvbmRfcGxvdF9kYXRhLCB3aWR0aCA9IDAuMywgc2l6ZSA9IDIsIGFscGhhID0gIDAuNSkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gYygiQmFyY2Vsb25hIiA9ICIjYTUwZjE1IiwgIkJyb3duc3ZpbGxlIiA9ICIjZmU5OTI5IiwgIkRhaG9tZXkiID0gIiM0MWI2YzQiLCAiSXNyYWVsIiA9ICIjMjM4NDQzIiAsICJTd2VkZW4iID0gIiM0YTE0ODYiKSkgKwogIGdlb21fcG9pbnQoZGF0YSA9IGZlbWFsZV9jb25kX3N1bW1hcnksIGFlcyh4ID0gRm9jYWxfaGFwbG90eXBlLCB5ID0gTWF0ZXJuYWxfdG90YWxfb2Zmc3ByaW5nKSwgc2l6ZSA9IDMsIGNvbG91cj0nYmxhY2snKSArCiAgZ2VvbV9lcnJvcmJhcihkYXRhID0gZmVtYWxlX2NvbmRfc3VtbWFyeSwgYWVzKHggPSBGb2NhbF9oYXBsb3R5cGUsIHltYXggPSBVcHBlciwgeW1pbiA9IExvd2VyLCB3aWR0aCA9IDApLCBjb2xvdXIgPSAiYmxhY2siKSArCiAgbGFicyh4ID0gIkZlbWFsZSBtdEROQSBoYXBsb3R5cGUiLCB5ID0gIk51bWJlciBvZiBvZmZzcHJpbmcgcHJvZHVjZWQiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsKICB0aGVtZShwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCkpCgpgYGAKCioqRmlndXJlIDc6KiogTnVtYmVyIG9mIG9mZnNwcmluZyBwcm9kdWNlZCBieSBmZW1hbGVzIHRoYXQgcHJvZHVjZWQgYXQgbGVhc3Qgb25lIG9mZnNwcmluZywgc3BsaXQgYnkgbWl0b2Nob25kcmlhbCBoYXBsb3R5cGUuIERhdGEgY29ycmVzcG9uZHMgdG8gdGhlIGNvbmRpdGlvbmFsIGNvbXBvbmVudCBvZiB0aGUgaHVyZGxlIG1vZGVsLiBDb2xvdXJlZCBwb2ludHMgc2hvdyB0aGUgbnVtYmVyIG9mIG9mZnNwcmluZyBwcm9kdWNlZCBieSBpbmRpdmlkdWFsIGZlbWFsZXMuIFRoZSBibGFjayBwb2ludHMgc2hvdyB0aGUgbWVhbiByZXByb2R1Y3RpdmUgb3V0cHV0IGZvciBmZW1hbGVzIGFuZCBpdHMgOTUlIGNvbmZpZGVuY2UgbGltaXRzLiAKCiMjIyBNYWxlIGFkdWx0IGZpdG5lc3MKCldlIGZvbGxvdyB0aGUgY2xhc3NpYyBhcHByb2FjaCB0byBzcGVybSBjb21wZXRpdGlvbiBhbmFseXNpcyBhbmQgY29uc2lkZXIgbWFsZSBmaXRuZXNzIGFzIHRoZSBwcm9wb3J0aW9uIG9mIG9mZnNwcmluZyBzaXJlZCBieSB0aGUgbWl0b2xpbmUgbWFsZSB3aGlsZSBjb21wZXRpbmcgYWdhaW5zdCBhIHN0YW5kYXJkIF9id18gbWFsZS4KCkhlcmUgd2UgYXJlIG1lYXN1cmluZyBtYWxlIGZpdG5lc3MgYXMgMSkgdGhlIGFiaWxpdHkgb2YgYSBtYWxlIHRvIGluc2VtaW5hdGUgYSBmZW1hbGUgaW4gdGhlIHByZXNlbmNlIG9mIGFub3RoZXIgbWFsZSBhbmQgMikgdGhlIGNvbXBldGl0aXZlIGFiaWxpdHkgb2YgaGlzIHNwZXJtIHdpdGhpbiBmZW1hbGVzIHRoYXQgaGF2ZSBiZWVuIGluc2VtaW5hdGVkIGJ5IGFub3RoZXIgbWFsZS4gWmVyby1jb3VudCBvdXRjb21lcyBjYW4gdGhlcmVmb3JlIGFyaXNlIGR1ZSB0byBlaXRoZXIgc3RydWN0dXJhbCBhbmQgc2FtcGxpbmcgemVyb3MgKG9yIGF0IGxlYXN0IHByb2Nlc3NlcyB0aGF0IGFyZSBsaWtlbHkgdG8gZm9sbG93IGRpZmZlcmVudCBkaXN0cmlidXRpb25zKS4gV2UgdXNlIGEgemVyby1pbmZsYXRlZCBiaW5vbWlhbCBtb2RlbC4KClRoZSBCcm93bnN2aWxsZSBoYXBsb3R5cGUgcmVuZGVycyBtYWxlcyBzdGVyaWxlIGFsb25nc2lkZSB0aGUgX3deMTExOF5fIG51Y2xlYXIgYmFja2dyb3VuZCBhbmQgc3ViLWZlcnRpbGUgYWxvbmdzaWRlIGFsbCBvdGhlciB0ZXN0ZWQgYmFja2dyb3VuZHMuIEluIG91ciBleHBlcmltZW50LCB3ZSBmaW5kIHRoYXQgQnJvd25zdmlsbGUgbWFsZXMgYXJlIGFibGUgdG8gcHJvZHVjZSBvZmZzcHJpbmcgYnV0IHRvIGEgdmVyeSBsaW1pdGVkIGNhcGFjaXR5LiBEdWUgdG8gdGhpcywgb3VyIG1vZGVsIHdpbGwgbm90IGNvbnZlcmdlIHdpdGggdGhlIEJyb3duc3ZpbGxlIG1hbGVzIGluIHRoZSBkYXRhc2V0LiBUaGVyZWZvcmUsIHdlIGFja25vd2xlZGdlIHRoYXQgdGhlcmUgaXMgYW4gZWZmZWN0IG9mIHRoZSBCcm93bnN2aWxsZSBmb2NhbCBoYXBsb3R5cGUgb24gbWFsZSBmaXRuZXNzIGFuZCB0aGVuIHJlbW92ZSBpdCBmcm9tIHRoZSBkYXRhc2V0LgoKV2UgZml0IGEgemVyby1pbmZsYXRlZCBiaW5vbWlhbCBtb2RlbDoKCioqKGZvY2FsX21hbGVfb2Zmc3ByaW5nLCBPZmZzcHJpbmdfY291bnRlZCkgfiBGb2NhbF9oYXBsb3R5cGUgKiBTb2NpYWxfaGFwbG90eXBlICsgU29jaWFsX2hhcGxvdHlwZSAqIFNvY2lhbF9zdXJ2aXZhbCArIER1cGxpY2F0ZSArICgxfEluZGl2aWR1YWwpICsgKDF8QmxvY2spKioKCldlIGZpdCAnSW5kaXZpZHVhbCcgYXMgYSByYW5kb20gZWZmZWN0IHRvIGVuc3VyZSB0aGF0IHRoZSBwcm9wb3J0aW9uIG9mIG9mZnNwcmluZyBpcyBjYWxjdWxhdGVkIGZvciBlYWNoIG1pdG9saW5lIG1hbGUsIHJhdGhlciB0aGFuIGFzIGFuIG92ZXJhbGwgcHJvcG9ydGlvbiBmb3IgZWFjaCBncm91cCBvZiBtYWxlcy4gCgoqKlRhYmxlIFM1Kio6IEFub3ZhIHJlc3VsdHMgZnJvbSB6ZXJvLWluZmxhdGVkIGJpbm9taWFsIG1vZGVsIGZvciBtYWxlIGFkdWx0IGZpdG5lc3MuIApgYGB7ciwgZXZhbD1GQUxTRX0KTWFsZV9maXRuZXNzX3dpdGhvdXRfQnJvd25zdmlsbGUgPC0gTWFsZV9maXRuZXNzICU+JSBmaWx0ZXIoRm9jYWxfaGFwbG90eXBlICE9ICJCcm93bnN2aWxsZSIpICU+JSBtdXRhdGUoSW5kaXZpZHVhbCA9IDE6bigpKQoKcmVzcG9uc2UgPC0gY2JpbmQoTWFsZV9maXRuZXNzX3dpdGhvdXRfQnJvd25zdmlsbGUkRm9jYWxfbWFsZV9vZmZzcHJpbmcsIE1hbGVfZml0bmVzc193aXRob3V0X0Jyb3duc3ZpbGxlJEJ3X29mZnNwcmluZykKCm1hbGVfemlfbW9kZWwgPC0gZ2xtbVRNQihyZXNwb25zZSB+IEZvY2FsX2hhcGxvdHlwZSAqIFNvY2lhbF9oYXBsb3R5cGUgKyBmYWN0b3IoRHVwbGljYXRlKSwgZGF0YSA9IE1hbGVfZml0bmVzc193aXRob3V0X0Jyb3duc3ZpbGxlLCBmYW1pbHkgPSBiaW5vbWlhbCwgemk9IH4uLCBuYS5hY3Rpb24gPSBuYS5mYWlsLCBSRU1MID0gRkFMU0UsIGNvbnRyb2wgPSBnbG1tVE1CQ29udHJvbChvcHRDdHJsID0gbGlzdChpdGVyLm1heCA9IDEwMDAsIGV2YWwubWF4ID0gMTAwMCksIHByb2ZpbGUgPSBUUlVFLCBjb2xsZWN0ID0gRkFMU0UpKQoKCm1hbGVfemlfbW9kZWwgPC0gZ2xtbVRNQihyZXNwb25zZSB+IEZvY2FsX2hhcGxvdHlwZSArIFNvY2lhbF9oYXBsb3R5cGUgKyBmYWN0b3IoRHVwbGljYXRlKSArICgxfEJsb2NrKSArICgxfEluZGl2aWR1YWwpLCBkYXRhID0gTWFsZV9maXRuZXNzX3dpdGhvdXRfQnJvd25zdmlsbGUsIGZhbWlseSA9IGJpbm9taWFsLCB6aT0gfi4sIG5hLmFjdGlvbiA9IG5hLmZhaWwsIFJFTUwgPSBGQUxTRSwgY29udHJvbCA9IGdsbW1UTUJDb250cm9sKG9wdEN0cmwgPSBsaXN0KGl0ZXIubWF4ID0gMTAwMCwgZXZhbC5tYXggPSAxMDAwKSwgcHJvZmlsZSA9IFRSVUUsIGNvbGxlY3QgPSBGQUxTRSkpCgptYWxlX3ppX21vZGVsIDwtIGdsbW1UTUIocmVzcG9uc2UgfiBGb2NhbF9oYXBsb3R5cGUgKyBTb2NpYWxfaGFwbG90eXBlICogU29jaWFsX3N1cnZpdmFsICsgZmFjdG9yKER1cGxpY2F0ZSkgKyAoMXxCbG9jaykgKyAoMXxJbmRpdmlkdWFsKSwgZGF0YSA9IE1hbGVfZml0bmVzc193aXRob3V0X0Jyb3duc3ZpbGxlLCBmYW1pbHkgPSBiaW5vbWlhbCwgemlmb3JtdWxhID0gfi4sIG5hLmFjdGlvbiA9IG5hLmZhaWwsIFJFTUwgPSBGQUxTRSwgY29udHJvbCA9IGdsbW1UTUJDb250cm9sKG9wdEN0cmwgPSBsaXN0KGl0ZXIubWF4ID0gMTAwMCwgZXZhbC5tYXggPSAxMDAwKSwgcHJvZmlsZSA9IFRSVUUsIGNvbGxlY3QgPSBGQUxTRSkpCgppZihmaWxlLmV4aXN0cygibWFsZV9kcmVkZ2UucmRzIikpeyAjIElmIGFscmVhZHkgZG9uZSwganVzdCBsb2FkIHRoZSByZXN1bHRzCiAgbWFsZV9kcmVkZ2UgPC0gcmVhZFJEUygibWFsZV9kcmVkZ2UucmRzIikKfSBlbHNlIHttYWxlX2RyZWRnZSA8LSBkcmVkZ2UobWFsZV96aV9tb2RlbCkgIyBJZiBub3QgYWxyZWFkeSBkb25lLCBydW4gdGhlIGRyZWRnZSBhbmQgc2F2ZSB0aGUgcmVzdWx0cwpsYXBwbHkoYygibWFsZV9kcmVkZ2UiKSwgc2F2ZV9pdCkKfQoKTWFsZV90YWJsZSA8LSBzdWJzZXQobWFsZV9kcmVkZ2UsIGRlbHRhIDwgNiwgcmVjYWxjLndlaWdodHMgPSBGQUxTRSkgJT4lIGFzLmRhdGEuZnJhbWUoKQoKYGBgCgojIyMjIE1vZGVsIGF2ZXJhZ2luZwoKKipUYWJsZSA1OioqIENvbmRpdGlvbmFsIChhZnRlciBodXJkbGUpIGFuZCB6aSAoemVyby1odXJkbGUgcmVxdWlyZW1lbnQpIG1vZGVsIGNvZWZmaWNpZW50cywgc3RhbmRhcmQgZXJyb3IgYW5kIDk1JSBjb25maWRlbmNlIGxpbWl0cyBhcmUgc2hvd24gZm9yIHRoZSBtYWxlIGFkdWx0IGZpdG5lc3MgYXZlcmFnZWQgbW9kZWwuIEJvbGQgcm93cyBpbmRpY2F0ZSBzaWduZmljYW50IGVmZmVjdHMuIAoKYGBge3IsIGV2YWw9RkFMU0V9Cgojc3VtbWFyeShtb2RlbC5hdmcobWFsZV9kcmVkZ2UsIHN1YnNldCA9IGRlbHRhIDwgNikpCgpNYWxlX0NJcyA8LSBjb25maW50KG1vZGVsLmF2ZyhtYWxlX2RyZWRnZSwgc3Vic2V0ID0gZGVsdGEgPCA2KSkgJT4lIGFzLmRhdGEuZnJhbWUoKQoKTWFsZV9lc3RpbWF0ZSA8LSBjb2VmVGFibGUobW9kZWwuYXZnKG1hbGVfZHJlZGdlLCBzdWJzZXQgPSBkZWx0YSA8IDYpKSAlPiUgYXMuZGF0YS5mcmFtZSgpCgpNYWxlX21vZGVsX2F2ZyA8LSBkYXRhLmZyYW1lKE1hbGVfZXN0aW1hdGUsIE1hbGVfQ0lzKSAlPiUgc2VsZWN0KEVzdGltYXRlLCBTdGQuLkVycm9yLCAgWDIuNS4uLCBYOTcuNS4uKQoKbmFtZXMoTWFsZV9tb2RlbF9hdmcpW25hbWVzKE1hbGVfbW9kZWxfYXZnKSA9PSAiRXN0aW1hdGUiXSA8LSAiQ29uZGl0aW9uYWwgYXZlcmFnZSBlc3RpbWF0ZSIKbmFtZXMoTWFsZV9tb2RlbF9hdmcpW25hbWVzKE1hbGVfbW9kZWxfYXZnKSA9PSAiU3RkLi5FcnJvciJdIDwtICJTdGFuZGFyZCBFcnJvciIKbmFtZXMoTWFsZV9tb2RlbF9hdmcpW25hbWVzKE1hbGVfbW9kZWxfYXZnKSA9PSAiWDIuNS4uIl0gPC0gIjIuNSUgSW50ZXJ2YWwiCm5hbWVzKE1hbGVfbW9kZWxfYXZnKVtuYW1lcyhNYWxlX21vZGVsX2F2ZykgPT0gIlg5Ny41Li4iXSA8LSAiOTcuNSUgSW50ZXJ2YWwiCgpwYW5kZXIoTWFsZV9tb2RlbF9hdmcsIHNwbGl0LmNlbGwgPSA0MCwgc3BsaXQudGFibGUgPSBJbmYsIGVtcGhhc2l6ZS5zdHJvbmcucm93cyA9IGMoNTo3LCAxMikpCgpgYGAKCgoKYGBge3IsIGZpZy53aWR0aD0gOSwgZmlnLmhlaWdodD0gNH0KCm1hbGVfcGxvdF9kYXRhIDwtIE1hbGVfZml0bmVzcyAlPiUgCiAgbXV0YXRlKFNvY2lhbF9zdXJ2aXZhbCA9IHJlcGxhY2UoYXMuY2hhcmFjdGVyKFNvY2lhbF9zdXJ2aXZhbCksIFNvY2lhbF9zdXJ2aXZhbCA9PSAiTCIsICJEaWVkIGFzIGxhcnZhIiksCiAgICAgICAgU29jaWFsX3N1cnZpdmFsID0gcmVwbGFjZShhcy5jaGFyYWN0ZXIoU29jaWFsX3N1cnZpdmFsKSwgU29jaWFsX3N1cnZpdmFsID09ICJQIiwgIkRpZWQgYXMgcHVwYSIpLAogICAgICAgICBTb2NpYWxfc3Vydml2YWwgPSByZXBsYWNlKGFzLmNoYXJhY3RlcihTb2NpYWxfc3Vydml2YWwpLCBTb2NpYWxfc3Vydml2YWwgPT0gIk4iLCAiU3Vydml2ZWQgdG8gYWR1bHRob29kIikpCgpNYWxlX2ZpdG5lc3Nfc3VtbWFyeV9zb2NpYWxtdCA8LSBtYWxlX3Bsb3RfZGF0YSAlPiUgCiAgZ3JvdXBfYnkoU29jaWFsX2hhcGxvdHlwZSkgJT4lCiAgZHBseXI6OnN1bW1hcmlzZShNZWFuX3Byb3BvcnRpb25fZm9jYWwgPSBzdW0oUHJvcG9ydGlvbl9mb2NhbCkgLyBsZW5ndGgoUHJvcG9ydGlvbl9mb2NhbCksIExvd2VyID0gKE1lYW5fcHJvcG9ydGlvbl9mb2NhbCAtIFNFKFByb3BvcnRpb25fZm9jYWwpKiAxLjk2KSwgVXBwZXIgPSAoTWVhbl9wcm9wb3J0aW9uX2ZvY2FsICsgU0UoUHJvcG9ydGlvbl9mb2NhbCkqMS45NiksIG4gPSBuKCkpICU+JSByZW5hbWUoUHJvcG9ydGlvbl9mb2NhbCA9IE1lYW5fcHJvcG9ydGlvbl9mb2NhbCkKCk1hbGVfZml0bmVzc19zdW1tYXJ5X2ZvY2FsbXQgPC0gbWFsZV9wbG90X2RhdGEgJT4lIAogIGdyb3VwX2J5KEZvY2FsX2hhcGxvdHlwZSkgJT4lCiAgZHBseXI6OnN1bW1hcmlzZShNZWFuX3Byb3BvcnRpb25fZm9jYWwgPSBzdW0oUHJvcG9ydGlvbl9mb2NhbCkgLyBsZW5ndGgoUHJvcG9ydGlvbl9mb2NhbCksIExvd2VyID0gKE1lYW5fcHJvcG9ydGlvbl9mb2NhbCAtIFNFKFByb3BvcnRpb25fZm9jYWwpKiAxLjk2KSwgVXBwZXIgPSAoTWVhbl9wcm9wb3J0aW9uX2ZvY2FsICsgU0UoUHJvcG9ydGlvbl9mb2NhbCkqMS45NiksIG4gPSBuKCkpICU+JSByZW5hbWUoUHJvcG9ydGlvbl9mb2NhbCA9IE1lYW5fcHJvcG9ydGlvbl9mb2NhbCkKCgpNYWxlX2ZvY2FsX3Bsb3QgPC0gbWFsZV9wbG90X2RhdGEgJT4lCiAgZ2dwbG90KGFlcyh4ID0gRm9jYWxfaGFwbG90eXBlLCB5ID0gUHJvcG9ydGlvbl9mb2NhbCwgZmlsbCA9IEZvY2FsX2hhcGxvdHlwZSwgY29sb3VyID0gRm9jYWxfaGFwbG90eXBlKSkgKwogIGdlb21fcXVhc2lyYW5kb20oZGF0YSA9IG1hbGVfcGxvdF9kYXRhLCB3aWR0aCA9IDAuMywgYWxwaGEgPSAgMC41LCBhZXMoc2l6ZSA9IE9mZnNwcmluZ19jb3VudGVkKSkgKwogIHNjYWxlX3NpemVfY29udGludW91cyhyYW5nZSA9IGMoMC41LCA2KSwgbGFiZWxzID0gTlVMTCwgYnJlYWtzID0gYygyMCwgNDAsIDYwLCA4MCwgMTAwLCAxMjApKSArCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjKCJCYXJjZWxvbmEiID0gIiNhNTBmMTUiLCAiQnJvd25zdmlsbGUiID0gIiNmZTk5MjkiLCAiRGFob21leSIgPSAiIzQxYjZjNCIsICJJc3JhZWwiID0gIiMyMzg0NDMiICwgIlN3ZWRlbiIgPSAiIzRhMTQ4NiIpKSArCiAgZ2VvbV9wb2ludChkYXRhID0gTWFsZV9maXRuZXNzX3N1bW1hcnlfZm9jYWxtdCwgYWVzKHggPSBGb2NhbF9oYXBsb3R5cGUsIHkgPSBQcm9wb3J0aW9uX2ZvY2FsKSwgc2l6ZSA9IDMsIGNvbG91cj0nYmxhY2snKSArCiAgZ2VvbV9lcnJvcmJhcihkYXRhID0gTWFsZV9maXRuZXNzX3N1bW1hcnlfZm9jYWxtdCwgYWVzKHggPSBGb2NhbF9oYXBsb3R5cGUsIHltYXggPSBVcHBlciwgeW1pbiA9IExvd2VyLCB3aWR0aCA9IDApLCBjb2xvdXIgPSAiYmxhY2siKSArCiAgbGFicyh4ID0gIkZvY2FsIG10RE5BIGhhcGxvdHlwZSIsIHkgPSAiUHJvcG9ydGlvbiBvZiBvZmZzcHJpbmcgc2lyZWQgYnkgZm9jYWwgbWFsZSIpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKwogIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSkKCgpNYWxlX3NvY2lhbF9wbG90IDwtIG1hbGVfcGxvdF9kYXRhICU+JQogIGdncGxvdChhZXMoeCA9IFNvY2lhbF9oYXBsb3R5cGUsIHkgPSBQcm9wb3J0aW9uX2ZvY2FsLCBmaWxsID0gU29jaWFsX2hhcGxvdHlwZSwgY29sb3VyID0gU29jaWFsX2hhcGxvdHlwZSkpICsKICBnZW9tX3F1YXNpcmFuZG9tKGRhdGEgPSBtYWxlX3Bsb3RfZGF0YSwgd2lkdGggPSAwLjMsIGFscGhhID0gIDAuNSwgYWVzKHNpemUgPSBPZmZzcHJpbmdfY291bnRlZCkpICsKICBzY2FsZV9zaXplX2NvbnRpbnVvdXMocmFuZ2UgPSBjKDAuNSwgNiksIGxhYmVscyA9IE5VTEwsIGJyZWFrcyA9IGMoMjAsIDQwLCA2MCwgODAsIDEwMCwgMTIwKSkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gYygiQmFyY2Vsb25hIiA9ICIjYTUwZjE1IiwgIkJyb3duc3ZpbGxlIiA9ICIjZmU5OTI5IiwgIkRhaG9tZXkiID0gIiM0MWI2YzQiLCAiSXNyYWVsIiA9ICIjMjM4NDQzIiAsICJTd2VkZW4iID0gIiM0YTE0ODYiKSkgKwogIGdlb21fcG9pbnQoZGF0YSA9IE1hbGVfZml0bmVzc19zdW1tYXJ5X3NvY2lhbG10LCBhZXMoeCA9IFNvY2lhbF9oYXBsb3R5cGUsIHkgPSBQcm9wb3J0aW9uX2ZvY2FsKSwgc2l6ZSA9IDMsIGNvbG91cj0nYmxhY2snKSArCiAgZ2VvbV9lcnJvcmJhcihkYXRhID0gTWFsZV9maXRuZXNzX3N1bW1hcnlfc29jaWFsbXQsIGFlcyh4ID0gU29jaWFsX2hhcGxvdHlwZSwgeW1heCA9IFVwcGVyLCB5bWluID0gTG93ZXIsIHdpZHRoID0gMCksIGNvbG91ciA9ICJibGFjayIpICsKICBsYWJzKHggPSAiU29jaWFsIG10RE5BIGhhcGxvdHlwZSIsIHkgPSAiUHJvcG9ydGlvbiBvZiBvZmZzcHJpbmcgc2lyZWQgYnkgZm9jYWwgbWFsZSIpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKwogIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSkKCmdnYXJyYW5nZShNYWxlX2ZvY2FsX3Bsb3QsIE1hbGVfc29jaWFsX3Bsb3QpCgpgYGAKCioqRmlndXJlIDg6KiogVGhlIHByb3BvcnRpb24gb2Ygb2Zmc3ByaW5nIHByb2R1Y2VkIGJ5IGZvY2FsIG1hbGVzIGNvbXBldGluZyB3aXRoIHN0YW5kYXJkIF9id18gbWFsZXMsIHNwbGl0IGJ5IGEpIHRoZSBtYWxlcyBtdEROQSBoYXBsb3R5cGUgYW5kIGIpIHRoZSBtdEROQSBoYXBsb3R5cGUgb2YgYSBzb2NpYWwgY29tcGV0aXRvciBkdXJpbmcgZGV2ZWxvcG1lbnQuIENvbG91cmVkIHBvaW50cyByZXByZXNlbnQgaW5kaXZpZHVhbCBtYWxlcywgd2l0aCBsYXJnZXIgcG9pbnRzIGluZGljYXRpbmcgYSBoaWdoIG51bWJlciBvZiBvZmZzcHJpbmcgcHJvZHVjZWQgaW4gdGhlIHZpYWwgKHNpcmVkIGJ5IGVpdGhlciBtYWxlKS4gQmxhY2sgcG9pbnRzIHNob3cgdGhlIG1lYW4gcHJvcG9ydGlvbiBvZiBvZmZzcHJpbmcgc2lyZWQgYnkgdGhlIGZvY2FsIG1hbGUsIHdpdGggYXNzc29jaWF0ZWQgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzLiAqKk1lYW5zIGFyZSBub3QgYWRqdXN0ZWQgZm9yIHplcm8gaW5mbGF0aW9uKiouICAgCgojIFJhdyBkYXRhIGFuZCByZXByb2R1Y2liaWxpdHkKCiMjIyBUYWJsZSBvZiByYXcgZGF0YQoKRm9yIGNvbXBsZXRlbmVzcywgdHJhbnNwYXJlbmN5IGFuZCBmb3IgcHVycG9zZXMgb2YgZGF0YSBhcmNoaXZpbmcsIHdlIGluY2x1ZGUgdGhlIHJhdyBkYXRhIGluIHRoaXMgcmVwb3J0LgoKCioqVGFibGUgUzYqKjogdGhlIHJhdyBkYXRhc2V0IHVzZWQgaW4gdGhlIHByZXNlbnQgc3R1ZHkuCmBgYHtyfQprYWJsZShmaXRuZXNzX2RhdGEgJT4lIGZpbHRlcighaXMubmEoU3Vydml2ZWQpKSwgImh0bWwiKSAlPiUKICBrYWJsZV9zdHlsaW5nKCkgJT4lCiAgc2Nyb2xsX2JveCh3aWR0aCA9ICIxMDAlIiwgaGVpZ2h0ID0gIjgwMHB4IikKYGBgCgoKQ29sdW1ucyByZXByZXNlbnQ6CgoqKkluZGl2aWR1YWw6KiogdGhlIGZvY2FsIGZseSBiZWluZyB0ZXN0ZWQuCgoqKkJsb2NrOioqIHRoZSBkaXN0aW5jdCBwZWlyb2Qgb2YgdGltZSB0aGF0IHRoZSBwYXJ0aWN1bGFyIGluZGl2aWR1YWwgd2FzIHRlc3RlZC4KCioqRHVwbGljYXRlOioqIFdhcyB0aGUgZmx5IGZyb20gdGhlIGZpcnN0IGluZGVwZW5kZW50IG1pdG9jaG9uZHJpYWwgZHVwbGljYXRlIGNvcHkgb3IgdGhlIHNlY29uZD8KCioqUmVwbGljYXRlOioqIEEgc2V0IG9mIGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2YgdGhlIDUgaGFwbG90eXBlcy4gRWFjaCByZXBsaWNhdGUgY29udGFpbmVkIDI1IGNlbGxzLgoKKipTZXg6Kiogd2FzIHRoZSBmb2NhbCBpbmRpdmlkdWFsIGZlbWFsZSBvciBtYWxlPwoKKipGb2NhbF9oYXBsb3R5cGU6Kiogd2hhdCBtdEROQSBoYXBsb3R5cGUgZGlkIHRoZSBmb2NhbCBpbmRpdmlkdWFsIGNhcnJ5PwoKKipTb2NpYWxfaGFwbG90eXBlOioqIHdoYXQgbXRETkEgaGFwbG90eXBlIGRpZCB0aGUgc29jaWFsIGNvbXBldGl0b3Igb2YgdGhlIGZvY2FsIGluZGl2aWR1YWwgY2Fycnk/CgoqKlN1cnZpdmVkOioqIGRpZCB0aGUgZm9jYWwgaW5kaXZpZHVhbCBkaWUgYXMgYSBsYXJ2YSAoTCksIGFzIGEgcHVwYSAoUCkgb3Igc3Vydml2ZSB0byBhZHV0bGhvb2QgKE4pPwoKKipTb2NpYWxfc3Vydml2YWw6KiogZGlkIHRoZSBzb2NpYWwgY29tcGV0aXRvciBkaWUgYXMgYSBsYXJ2YSAoTCksIGFzIGEgcHVwYSAoUCkgb3Igc3Vydml2ZSB0byBhZHV0bGhvb2QgKE4pPwoKKipEZXZfdGltZToqKiBob3cgbWFueSBob3VycyBkaWQgaXQgdGFrZSBmb3IgdGhlIGZvY2FsIGluZGl2aWR1YWwgdG8gcHJvZ3Jlc3MgZnJvbSBhbiBlZ2cgdG8gYW4gYWR1bHQuIE5BIHZhbHVlcyBpbmRpY2F0ZSB3aGVyZSBpbmRpdmlkdWFscyBkaWQgbm90IHN1cnZpdmUgb3IgZGV2ZWxvcG1lbnQgdGltZSBjb3VsZCBub3QgYmUgbWVhc3VyZWQuCgoqKkRheToqKiBob3cgbWFueSBkYXlzIGRpZCBpdCB0YWtlIHRoZSBmb2NhbCBpbmRpdmlkdWFsIHRvIGRldmVsb3A/CgoqKkhvdXJzOioqIGxpZ2h0cyB3ZXJlIHR1cm5lZCBvbiBhdCA3YW0gZXZlcnkgbW9ybmluZy4gSG93IG1hbnkgaG91cnMgZGlkIGl0IHRha2UgZm9yIGluZGl2aWR1YWxzIHRvIGVjbG9zZSBhZnRlciB0aGlzIHRpbWU/CgoqKldpbmdfbGVuZ3RoOioqIHdoYXQgd2FzIHRoZSBsZW5ndGggaW4gbW0gb2YgdGhlIGZvY2FsIGluZGl2aWR1YWxzIHJpZ2h0IHdpbmc/CgoqKk1hdGVybmFsX2ZlbWFsZV9vZmZzcHJpbmc6KiogaG93IG1hbnkgYWR1bHQgZmVtYWxlIG9mZnNwcmluZyBkaWQgYSBmb2NhbCBmZW1hbGUgcHJvZHVjZSBpbiBhIHR3byBkYXkgcGVyaW9kPwoKKipNYXRlcm5hbF9tYWxlX29mZnNwcmluZzoqKiBob3cgbWFueSBhZHVsdCBtYWxlIG9mZnNwcmluZyBkaWQgYSBmb2NhbCBmZW1hbGUgcHJvZHVjZSBpbiBhIHR3byBkYXkgcGVyaW9kPwoKKipNYXRlcm5hbF90b3RhbF9vZmZzcHJpbmc6KiogaG93IG1hbnkgYWR1bHQgb2Zmc3ByaW5nIGRpZCBhIGZvY2FsIGZlbWFsZSBwcm9kdWNlIGluIGEgdHdvIGRheSBwZXJpb2Q/CgoqKlBhdGVybmFsX2ZvY2FsX29mZnNwcmluZzoqKiBob3cgbWFueSByZWQtZXllIHBoZW5vdHlwZSBvZmZzcHJpbmcgd2VyZSB0aGVyZSBhY3Jvc3MgdGhlIHR3byB2aWFscyBpbiB0aGUgbWFsZSBhZHVsdCBmaXRuZXNzIGFzc2F5PwoKKipQYXRlcm5hbF9id19vZmZzcHJpbmc6KiogaG93IG1hbnkgYnJvd24tZXllIHBoZW5vdHlwZSBvZmZzcHJpbmcgd2VyZSB0aGVyZSBhY3Jvc3MgdGhlIHR3byB2aWFscyBpbiB0aGUgbWFsZSBhZHVsdCBmaXRuZXNzIGFzc2F5PwoKCiMjIyBSIHNlc3Npb24gaW5mb3JtYXRpb24KClRoaXMgc2VjdGlvbiBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBhbmQgUiBwYWNrYWdlcyBhdHRhY2hlZCBkdXJpbmcgdGhlIHByb2R1Y3Rpb24gb2YgdGhpcyBkb2N1bWVudCwgdG8gYWxsb3cgZWFzaWVyIHJlcGxpY2F0aW9uIG9mIHRoZSBhbmFseXNpcy4KCmBgYHtyfQpzZXNzaW9uSW5mbygpICU+JSBwYW5kZXIKYGBgCgoKIyBSZWZlcmVuY2Vz